命令 | 说明 |
---|---|
set | 设置key的值 |
get | 获取对应的key值 |
strlen | 获取key的值得长度 |
append | 在原有的value的基础上追加内容 |
incr | 将key存储的内容加1 |
incrby | 将key存储的内容加指定的值 |
incrbyfoat | 将key存储的内容累加一个float类型的数据 |
decr | 将key存储的内退减1 |
decrby | 将key存储的内容减去指定的值 |
getrange | 截取value的值 |
getset | 获取设置key的值并返回原来的旧值 |
mget | 批量获取值 |
mset | 批量设置值 |
setx | 设置key对应的value,同时设置过期时间,单位是秒 |
psetx | 设置key对应的value,同时设置过期时间,单位是毫秒 |
setnx | 只有在key不存在时设置key值,set if not exists |
msetnx | 兼具mset和setnx的特性 |
set
设置指定key的值
127.0.0.1:6379> set name ps
OK
get命令
返回 key 的值,如果 key 不存在时,返回 nil。 如果 key 不是字符串类型,那么返回一个错误。
127.0.0.1:6379> get name
"ps"
127.0.0.1:6379> get aaa
(nil)
StrLen命令
获取value的长度
127.0.0.1:6379> STRLEN name
(integer) 2
Append
如果 key 已经存在并且是一个字符串, APPEND 命令将指定的 value 追加到该 key 原来值(value)的末尾,如果key不存在则报错
127.0.0.1:6379> APPEND name zzz
(integer) 5
127.0.0.1:6379> get name
"pszzz"
127.0.0.1:6379> append aaa
(error) ERR wrong number of arguments for 'append' command
Incr命令
将 key 中储存的数字值增一。
如果 key 不存在,那么 key 的值会先被初始化为 0 ,然后再执行 INCR 操作。
如果值包含错误的类型,或字符串类型的值不能表示为数字,那么返回一个错误
127.0.0.1:6379> set age 18
OK
127.0.0.1:6379> get age
"18"
127.0.0.1:6379> INCR age
(integer) 19 #正常数字增
127.0.0.1:6379> incr zzz
(integer) 1 不存在 初始为0增1
127.0.0.1:6379> incr name # 类型不匹配报错
(error) ERR value is not an integer or out of range
IncrBy命令
将 key 所储存的值加上特定的值
127.0.0.1:6379> INCRBY age 2
(integer) 21
127.0.0.1:6379> INCRBY age 3
(integer) 24
IncrByFloat命令
将 key 所储存的值加上给定的浮点增量值
127.0.0.1:6379> INCRBYFLOAT age 2.2
"26.2"
127.0.0.1:6379> INCRBYFLOAT age 2.2
"28.4"
Decr
将key中存储的数字减固定的值
127.0.0.1:6379> decrby age 1
(integer) 19
127.0.0.1:6379> decrby age 2
(integer) 17
GetRange
获取value值得子集
命令getrange key start end
127.0.0.1:6379> GETRANGE name 1 2
"sz"
127.0.0.1:6379> GETRANGE name 3 5
"zz"
127.0.0.1:6379>
SetRange命令
用 value 参数覆写给定 key 所储存的字符串值,从偏移量 offset 开始
127.0.0.1:6379> set name hellword
OK
127.0.0.1:6379> get name
"hellword"
127.0.0.1:6379> SETRANGE name 5 pszzz
(integer) 10
127.0.0.1:6379> get name
"hellwpszzz"
GetSet命令
获取设置key的值并返回原来的旧值
127.0.0.1:6379> getset name 十月
"hellwpszzz"
127.0.0.1:6379> get name
"\xe5\x8d\x81\xe6\x9c\x88"
MGet命令
批量获取值
127.0.0.1:6379> MGET name age
1) "ps"
2) "17"
MSet命令
批量设置值
127.0.0.1:6379> mset a1 s1 a2 s2 a3 s3 a4 s4
OK
127.0.0.1:6379> mget a1 a2 a3 a4
1) "s1"
2) "s2"
3) "s3"
4) "s4"
SetEx
设置key对应的value,同时设置过期时间,单位是秒
127.0.0.1:6379> setex name1 20 test
OK
127.0.0.1:6379> ttl name1
(integer) 15
127.0.0.1:6379> ttl name1
(integer) 13
127.0.0.1:6379> ttl name1
(integer) 12
127.0.0.1:6379> ttl name1
(integer) 10
127.0.0.1:6379> ttl name1
(integer) 5
127.0.0.1:6379> ttl name1
(integer) -2
PSetEx命令
这个命令和 SETEX 命令相似,但它以毫秒为单位设置 key 的生存时间,而不是像 SETEX 命令那样,以秒为单位
127.0.0.1:6379> PSetex names 20000 aaa
OK
127.0.0.1:6379> ttl names
(integer) 11
127.0.0.1:6379> pttl names
(integer) 7372
127.0.0.1:6379> pttl names
(integer) 1358
127.0.0.1:6379> pttl names
(integer) -2
127.0.0.1:6379>
SetNx命令
只有在key不存在时设置key的值,set if not exists
127.0.0.1:6379> setnx name aaa
(integer) 0
127.0.0.1:6379> get name
"ps"
127.0.0.1:6379> setnx name3 aaa
(integer) 1
127.0.0.1:6379> get name3
"aaa"
MSetNx命令
兼具了mset和setnx的特性,但是批量设置中只要有一个key存在,则所有的操作都失效
127.0.0.1:6379> msetnx b1 bb b2 bbb b3 bbbb
(integer) 1
127.0.0.1:6379> mget b1 b2 b3
1) "bb"
2) "bbb"
3) "bbbb
127.0.0.1:6379> msetnx a1 aaa b4 bbbbb b5 bs
(integer) 0
127.0.0.1:6379> mget a1 a5 a6
1) "s1"
2) (nil)