Redis中的基本类型(一)
字符串——String
get和set
设置值:set key value
获取值:get key
可以看出,当key值相同时,value会进行新值覆盖旧值,且当key不存在时,返回空(NIL)。
getrange和setrange
获取范围内key的value值:getrange key
设置范围内key的value值:setrange key
注:下标从0开始,到末尾用-1表示。
exists
查看key是否存在:exists key
存在返回1,不存在返回0。
append
追加字符串:append key value
在key的原值后面加上value值。
strlen
获取字符串的长度:strlen key
若key存在,返回value长度,否则,返回0。
incr和decr
自增+1:incr
自减-1:decr
test的未操作前是222,自增后是223,自减后变成222;当key不存在时,使用incr key,则存入key,且value由0变成1,decr同样value由0变成-1。
incrby和decrby
设置加减的步长:incrby:增加的步长;decrby:减少的步长。
可以看出,可以一次增加或减少很多,当key不存在时,增加或减少,都会存储key,并将0变成增加或减少的value值。同上。
setex和ttl
设置过期时间 格式: setex key seconds values
查看剩余时间 格式:ttl key
设置了30秒的有效时间,当过期时,无论过多久,返回的都是-2。
setnx
setnx(set if not exists) 如果指定的key不存在则设置,存在的失败: setnx key value
(分布式锁经常使用)。
key不存在的情况下,才能设置成功,存在的情况下,是不会改变原来的value值的。
mset和mget
同时设置多个值 格式:mset key1 value1 key2 value2 …
同时获取多个值 格式:mget key1 key …
getset
先获取值再设置值 格式:getset key value
应用场景
- 计数器(分散数、统计数)通常来保存单个字符串或者JSON字符串数据(短信验证码)。