redis的SET命令是用来设置在redis键部分的字符串值。
下面是我记录了大部分常用的字符串操作的命令:
set key value [ex 秒数]/[px 毫秒数] [nx]/[xx]
如:set a 1 ex 10,10秒有效
注:如果ex px同时写,以后面有效期为准
nx:表示key不存在时,执行操作
xx:表示key存在时,执行操作
mset multi set
一次性设置多个键值
如:
127.0.0.1:6379> mset a aaa b bbb c ccc
OK
127.0.0.1:6379> mget a b c
1) "aaa"
2) "bbb"
3) "ccc"
mget key1 key2 ...keyn
一次性获取多个键值
setrange key offset value
把字符串的offset偏移字节改成value
如:
127.0.0.1:6379> get a
"aaa"
127.0.0.1:6379> setrangea 1 w
(error) ERR unknown command 'setrangea'
127.0.0.1:6379> setrange a 1 w
(integer) 3
127.0.0.1:6379> get a
"awa"
如果偏移量>字符长度,那么自动补0x00
append key value
将value追加到key的原值上
getrange key startindex endindex
对于字符串的下标,左数从0开始,右数从-1开始
127.0.0.1:6379> set title chinese
OK
127.0.0.1:6379> getrange title 0 3
"chin"
127.0.0.1:6379> getrange title 0 -2 //注意,获取都是从字符串首部开始,到指定的下标
"chines"
注意:
1.start>=legth,则返回空字符串
2.stop>=length,则截取至字符结尾
3.如果start所处位置在stop右边,则返回空字符串
getset key newvalue
获取并返回旧值,并设置新值
127.0.0.1:6379> set status sleep
OK
127.0.0.1:6379> getset status weakup
"sleep"
127.0.0.1:6379> get status
"weakup"
incr key
指定的key值加1,并返回加1后的值
同理decr key 减1
注意:
1.不存在的key当成0,再incr操作
2.范围为64,有符号
incrby key num
指定的key加num
同理decrby key num,减去num
incrbyfloat key floatnum
指定的key增加浮点数
setbit key offset value
设置offset对应二进制位上的值,返回该位上的旧值
127.0.0.1:6379> set char A
OK
127.0.0.1:6379> setbit char 2 1
(integer) 0
127.0.0.1:6379> get char
"a"
注意:
1.如果offset过大,则会在中间填充0
2.offset最大为2^32-1位,即512M
bitop operation destkey key1 [key2 ...]
对于key1,key2,key作位运算,并将结果保存到destkey上。opearation可以是AND、OR、NOT、XOR
127.0.0.1:6379> setbit lower 2 1 //通过设置lower,让大写的和lower做或操作,大写会转变为小写
(integer) 0
127.0.0.1:6379> set char Q
OK
127.0.0.1:6379> bitop or char char lower
(integer) 1
127.0.0.1:6379> get char
"q"