美文网首页
string命令

string命令

作者: lenny611 | 来源:发表于2021-07-05 00:58 被阅读0次

Redis有五种数据类型,string,list,hash,set,zset,这五种数据类型说的是Key-Value中的value。
下面来简要介绍string数据类型的几种命令,主要涉及字符串,数值,bitmap操作。

set 带参数设置

set key value nx  ##不存在的时候才设置,可以用于分布式锁,拿到锁的人才能操作 
127.0.0.1:6379> set k1 123
OK
127.0.0.1:6379> get k1
"123"
127.0.0.1:6379> set k1 234 nx
(nil)
127.0.0.1:6379> get k1
"123"
set key value xx ##存在的时候才设置,只用于更新
127.0.0.1:6379> set k2 123 xx
(nil)
127.0.0.1:6379> get k2
(nil)
127.0.0.1:6379> get k1
"123"
127.0.0.1:6379> set k1 abc xx
OK
127.0.0.1:6379> get k1
"abc"
127.0.0.1:6379> 

批量set

127.0.0.1:6379> mset k2 e k3 f k4 g
OK
127.0.0.1:6379> mget k2 k3 k4
1) "e"
2) "f"
3) "g"

getset :相当于先get,再set,但是比单独发送get,set减少了一次IO请求,效率更高


image.png
127.0.0.1:6379> set k1 123
OK
127.0.0.1:6379> getset k1 456
"123"
127.0.0.1:6379> get k1
"456"

msetnx


msetnx 命令帮助
127.0.0.1:6379> keys *
(empty list or set)
127.0.0.1:6379> msetnx k1 a k2 b
(integer) 1
127.0.0.1:6379> mget k1 k2
1) "a"
2) "b"
127.0.0.1:6379> msetnx k2 c k3 d 
(integer) 0
127.0.0.1:6379> mget k1 k2 k3
1) "a"
2) "b"
3) (nil)

bitmap操作(bitcount ,bittops ,bitpos),使用场景:统计用户一年有多少天是登录的

127.0.0.1:6379> setbit user1key  1 1
(integer) 0
127.0.0.1:6379> setbit user1key  2 1
(integer) 0
127.0.0.1:6379> setbit user1key  23 1
(integer) 0
127.0.0.1:6379> setbit user1key  56
(error) ERR wrong number of arguments for 'setbit' command
127.0.0.1:6379> setbit user1key  56 1
(integer) 0
127.0.0.1:6379> setbit user1key  354 1
(integer) 0
127.0.0.1:6379> bitcount user1key 0 -1
(integer) 5

可以使用用户id作为key值,哪一天登录,就把哪一天的bit位设置为1,使用bitcount就能统计该用户一年的登录天数。

相关文章

网友评论

      本文标题:string命令

      本文链接:https://www.haomeiwen.com/subject/zyhyultx.html