Redis字符串类型的操作

作者:吴泽鑫 分类: Redis 发布于:2015-10-30 21:42 ė660次浏览 60条评论

set key value [ex 秒数] / [px 毫秒数]  [nx] /[xx]

如: set a 1 ex 10 , 10秒有效

Set a 1 px 9000  , 9秒有效

注: 如果ex,px同时写,以后面的有效期为准

如 set a 1 ex 100 px 9000, 实际有效期是9000毫秒

nx: 表示key不存在时,执行操作

xx: 表示key存在时,执行操作

例子:

127.0.0.1:6379> set name test1 ex 10 
OK
127.0.0.1:6379> ttl name
(integer) 7
127.0.0.1:6379> ttl name
(integer) 6
127.0.0.1:6379> ttl name
(integer) 4
127.0.0.1:6379> ttl name
(integer) -2
127.0.0.1:6379> set name test2 px 9000 
OK
127.0.0.1:6379> ttl name
(integer) 5
127.0.0.1:6379> ttl name
(integer) 4
127.0.0.1:6379> ttl name
(integer) 3
127.0.0.1:6379> ttl name
(integer) 1
127.0.0.1:6379> ttl name
(integer) 0
127.0.0.1:6379> ttl name
(integer) -2
127.0.0.1:6379> keys *
(empty list or set)
127.0.0.1:6379> set name jensen
OK
127.0.0.1:6379> set name wuzexin ex 10 nx
(nil)
127.0.0.1:6379> set name wuzexin ex 10 xx
OK

mset  key val

表示: 一次性设置多个键值

例子:

127.0.0.1:6379> mset k1 v1 k2 v2 k3 v3
OK
127.0.0.1:6379> keys *
1) "k3"
2) "k1"
3) "k2"

get key

表示:  获取key的值

例子:

127.0.0.1:6379> get k1
"v1"
127.0.0.1:6379> get k2
"v2"
127.0.0.1:6379> get k3
"v3"
127.0.0.1:6379>

mget key1 key2 ..keyn

表示:   获取多个key的值

例子:

127.0.0.1:6379> mget k1 k2 k3
1) "v1"
2) "v2"
3) "v3"

setrange key offset value

表示:  把字符串的offset偏移字节,改成value

注:如果偏移量>字符长度, 该字符自动补0x00

例子:


127.0.0.1:6379> set name hello
OK
127.0.0.1:6379> setrange name 2 x
(integer) 5
127.0.0.1:6379> get name
"hexlo"
127.0.0.1:6379> setrange name 7 !
(integer) 8
127.0.0.1:6379> get name
"hexlo\x00\x00!"
127.0.0.1:6379>


append key value

表示:   把value追加到key的原值上

注:如果偏移量>字符长度, 该字符自动补0x00

例子:

127.0.0.1:6379> set name hello
OK
127.0.0.1:6379> append name word
(integer) 9
127.0.0.1:6379> get name
"helloword"

getrange key start stop

表示:  是获取字符串中 [start, stop]范围的值


注: 对于字符串的下标,左数从0开始,右数从-1开始

1: start>=length, 则返回空字符串

2: stop>=length,则截取至字符结尾

3: 如果start 所处位置在stop右边, 返回空字符串


例子:

127.0.0.1:6379> get name
"helloword"
127.0.0.1:6379> getrange name 0 4
"hello"
127.0.0.1:6379> getrange name 5 -1
"word"
127.0.0.1:6379>

getset key newvalue

表示:  获取并返回旧值,设置新值

例子:

127.0.0.1:6379> set cnt 0
OK
127.0.0.1:6379> getset cnt 1
"0"
127.0.0.1:6379> getset cnt 2
"1"

incr key 

表示:   定的key的值加1,并返回加1后的值

注意:

1:不存在的key当成0,再incr操作

2: 范围为64有符号

例子:


127.0.0.1:6379> incr count
(integer) 1
127.0.0.1:6379> incr count
(integer) 2
127.0.0.1:6379> incr count
(integer) 3

incrby key number 

表示: 定的key的值加上number的值,并返回

例子:

127.0.0.1:6379> get count
"3"
127.0.0.1:6379> incrby count 90
(integer) 93

incrbyfloat key floatnumber

表示: 定的key的值加上floatnumber的浮点值,并返回

例子:


127.0.0.1:6379> incrbyfloat price 40.5
"40.5"
127.0.0.1:6379> incrbyfloat price 45.3
"85.8"



decr key

表示: 定的key的值在原来的基础上减1,并返回

例子:



127.0.0.1:6379> get count
"90"
127.0.0.1:6379> decr count
(integer) 89

decrby key number

表示: 定的key的值在原来的基础上减去number的值,并返回

例子:


127.0.0.1:6379> get count
"89"
127.0.0.1:6379> decrby count 10
(integer) 79


getbit key offset

表示: 获取值的二进制表示,对应位上的值(从左,从0编号)

例子:

redis 127.0.0.1:6379> set char A
OK
redis 127.0.0.1:6379> getbit char 1
(integer) 1
redis 127.0.0.1:6379> getbit char 2
(integer) 0
redis 127.0.0.1:6379> getbit char 7
(integer) 1



setbit  key offset value

表示:  设置offset对应二进制位上的值

返回: 该位上的旧值


注意:

1:如果offset过大,则会在中间填充0,

2: offset最大大到多少

3:offset最大2^32-1,可推出最大的的字符串为512M



bitop operation destkey key1 [key2 ...]

表示:  对key1,key2..keyN作operation,并将结果保存到 destkey 上。operation 可以是 AND 、 OR 、 NOT 、 XOR

注意: 对于NOT操作, key不能多个

例子:



redis 127.0.0.1:6379> setbit lower 7 0
(integer) 0
redis 127.0.0.1:6379> setbit lower 2 1
(integer) 0
redis 127.0.0.1:6379> get lower
" "
redis 127.0.0.1:6379> set char Q
OK
redis 127.0.0.1:6379> get char
"Q"
redis 127.0.0.1:6379> bitop or char char lower
(integer) 1
redis 127.0.0.1:6379> get char
"q"





本文出自 Jensen-吴泽鑫的博客,转载时请注明出处及相应链接:http://www.wuzexin.cn/post-4.html

发表评论

电子邮件地址不会被公开。必填项已用*标注


Ɣ回顶部