Redis字符串类型的操作
设置key值
set key value [ex 秒数]/[px 毫秒数] [nx]/[xx]
解析: 1.ex/px 为有效期,同时设定的话以后设定为有效
2.nx表示只有在key不存在时执行,xx表示只有在key存在时执行
设置多个key值
mset key1 val1 key2 val2
获取key值
get key
获取多个key值
mget key1 key2
偏移替换key值
setrange key offerset string
解析: 将以key为键的值为对象,从它的第offerset个字符开始,以字符串string对其后续字符一一替换
示例: setrange test 2 x //假定test值为hello,更改后的值为hexlo
setrange test 2 yzhb //heyzhb
setrange abc 5 def //假定abc值为ABC,更改后的值为ABC\x00\x00def,也就是说偏移量大于字符长度时将填充\x00
追加key值
append key string
获取key值某部分
getrange key start stop
解析: 将以key为键的值为对象,获取它的[start stop]范围内的值.应保证起始指针应该在终止指针的左侧,其他不合法情况返回空
示例: getrange code 2 4 //假定code值为hello_world,结果为llo
getrange code 8 100 //rld.
getrange -3 100 //index/stop正数代表从左往右数0开始,负数从右往左数-1开始.
获取并更新key值(先返回旧值,后更新值)
getset key newvalue
key值增减
incr key :增1,并返回值
decr key :减1,并返回值
incrby key num : 增加num,并返回值
decrby key num : 减少num,并返回值
incrbyfloat key num : 增加num(小数),并返回值.注意没有decrbyfloat这种操作
key值位码获取
getbit key offset
作用: 将以key为键的值的二进制码为对象,获取offset上位的值,从左,0开始偏移
示例: getbit char 1 //假定char为A,则二进制为0100 0001,返回值为1
getbit char 2 //0
getbit char 7 //1
key值位码设置
setbit key offset value
解析: 二进制只能为0/1,所以value不可能是其他值,否则提示错误.
如果offset超过key值二进制码长度,则以0填充,最大长度为2^29-1,这个字符串长度占512M
示例: setbit char 7 0 //[0100 0001]=>[0100 0000],该二进制码表示值为@,该命令返回操作结果.
多key值位码运算
bitop operation destkey key1 key2 keyn
解析: 对key1,key2,keyn进行operation运算,将结果赋给destkey
operation运算包括 AND OR NOT XOR
NOT 逻辑非,运算只能针对单个key求反
XOR 逻辑异或,一真一假互斥为真
示例: 比如将任意单字符值大小写形式转化.
1.大写字母十进制范围为65-132.即[0100 0001]-[0101 1010]
2.小写字母十进制范围为97-122.即[0110 0001]-[0111 1010]
3.同样字母,小写正好与大写相差32.大写转小写,只要把大写字符与一个二进制码为[0010 0000]做or运算即可
4.[0010 0000]代表字符为space. // [1101 1111]
[or:大写转小写]
setbit lower 2 1 //可以巧妙地给lower赋空值
set char G
bitop or char lower char
get char //g
[and:小写转大写]
set up _ //[1101 1111]代表字符为_
set char q
bitop and up char up
get up //Q