String字符串
基本命令
- 设置指定key的值 set key value
set name tom
- 获取指定key的值 get key
get name
- 删除指定key的值 del key…(可多个key),返回成功条数
del name
- 先取值后塞值 getset key value
set name tom
getset name jack //返回tom
- 先取值后塞值 getset key value
set name tom
getset name jack //返回tom
- 追加值 append key value ;如果 key 已经存在,则直接在对应的 value 后追加值否则就创建新的键值对
append name 01 //返回值是value的长度
get name // jack01
- 是否存在key exists key
exists tom //存在返回1,否返回0
- 是否存在key exists key
exists tom //存在返回1,否返回0
前置操作
127.0.0.1:6379> set k1 we
OK
127.0.0.1:6379> set k2 rng
OK
127.0.0.1:6379> set k3 3
OK
127.0.0.1:6379> keys *
1) "k2"
2) "k1"
3) "k3"
-decr key 对value的值-1,如果value不为数字,则报错
127.0.0.1:6379> decr k1
(error) ERR value is not an integer or out of range
127.0.0.1:6379> get k3
"3"
127.0.0.1:6379> decr k3
(integer) 2
- decrby key 指定步长的减少,key后跟减少的数字
127.0.0.1:6379> decrby k3 2
(integer) 0
- getrange key start end 返回子串,-1表示最后一个,以此类推
127.0.0.1:6379> set k1 helloWord
OK
127.0.0.1:6379> get k1
"helloWord"
127.0.0.1:6379> getrange k1 0 2
"hel"
127.0.0.1:6379> getrange k1 0 -1
"helloWord"
127.0.0.1:6379> getrange k1 -2 -1
"rd"
- incr与decr相反,对value执行+1,如果key不存在会默认value为0然后+1,如果value不是数字则报错
127.0.0.1:6379> get k3
"0"
127.0.0.1:6379> decr k3
(integer) -1
127.0.0.1:6379> incr k3
(integer) 0
127.0.0.1:6379> get k4
(nil)
127.0.0.1:6379> incr k4
(integer) 1
- incrby 指定步长的增加,与decrby相反
127.0.0.1:6379> incrby k3 5
(integer) 5
127.0.0.1:6379> get k3
"5"
- incrbyfloat key value 增加浮点数;没有对应的减少操作
127.0.0.1:6379> incrbyfloat k3 0.2
"5.2"
-批量设置值和获取值mset ,mget
127.0.0.1:6379> mset k1 helloWord k2 java k3 python
OK
127.0.0.1:6379> mget k1 k2 k3
1) "helloWord"
2) "java"
3) "python"
-setex key second value 给key设置value并设置过期时间,相当于先给key设置value,再设置过期时间;set key value;expire key seconds
127.0.0.1:6379> setex k5 60 C++
OK
127.0.0.1:6379> ttl k5
(integer) 55
#####################
127.0.0.1:6379> set k6 C
OK
127.0.0.1:6379> expire k6 40
(integer) 1
127.0.0.1:6379> ttl k6
(integer) 37
-psetex 与setex相同只不过设置时间为毫秒
127.0.0.1:6379> psetex k5 6000 123456
OK
127.0.0.1:6379> pttl k5
(integer) 1730
-setnx 相当于set if not exists ;如果key存在不做操作,如果key不存在相当于set
127.0.0.1:6379> get k7
(nil)
127.0.0.1:6379> setnx k7 C#
(integer) 1
127.0.0.1:6379> get k7
"C#"
-msetnx 批量设置值,若果有一个key已经存在则都不执行
127.0.0.1:6379> mset k1 123 k7 123 k8 123
OK
127.0.0.1:6379> msetnx k8 321 k9 123
(integer) 0
127.0.0.1:6379> get k8
"123"
-覆盖已经存在key的value,如果已经存在的key的value长度小于offset,则不足的地方用0补齐
127.0.0.1:6379> set k1 helloWorld
OK
127.0.0.1:6379> get k1
"helloWorld"
127.0.0.1:6379> setrange k1 5 XXXXXX
(integer) 11
127.0.0.1:6379> get k1
"helloXXXXXX"
127.0.0.1:6379> setrange k1 14 YYY
(integer) 17
127.0.0.1:6379> get k1
"helloXXXXXX\x00\x00\x00YYY"
127.0.0.1:6379>
-计算value的长度strlen key
127.0.0.1:6379> strlen k1
(integer) 17