redis scan命令

 ads:

关注以下公众号查看更多文章

使用redis的scan命令组,scan、hscan、sscan、zscan在批量操作redis key时可以避免阻塞redis

scan命令

准备数据

not connected> set scana aaaa
OK
127.0.0.1:6379> set scanb bbbb
OK
127.0.0.1:6379> set scanc cccc
OK
127.0.0.1:6379> set scand dddd
OK
127.0.0.1:6379> set scane eeee
OK
127.0.0.1:6379> set scanf ffff
OK
127.0.0.1:6379> set scang gggg
OK
127.0.0.1:6379> set scanh hhhh
OK
127.0.0.1:6379> set scani iiii
OK
127.0.0.1:6379> set scanj jjjj
OK
127.0.0.1:6379> set scank kkkk

使用

第一次scan ,游标为0

scan 0 match 'scan*' count 2

返回

1) "12"
2) 1) "scang"

第二次scan,游标为上次结果返回的最后一个id

scan 12 match 'scan*' count 2

返回

1) "10"
2) 1) "scank"
   2) "scani"

最后一次返回

1) "0"
2) (empty array)

hscan命令

准备数据

127.0.0.1:6379> hset hscan2 scan1 11111
(integer) 1
127.0.0.1:6379> hset hscan2 scan2 22222
(integer) 1
127.0.0.1:6379> hset hscan2 bbbbb 3333
(integer) 1
127.0.0.1:6379> hset hscan2 scan3 44444
(integer) 1
127.0.0.1:6379> hset hscan2 scan4 555555
(integer) 1
127.0.0.1:6379> hset hscan2 scan5 sdfsdf
(integer) 1
127.0.0.1:6379> hset hscan2 scan6 dsfsdf

执行hscan

hscan hscan2 0 match 'scan*' COUNT 2

返回

1) "0"
2)  1) "scan1"
    2) "11111"
    3) "scan2"
    4) "22222"
    5) "scan3"
    6) "44444"
    7) "scan4"
    8) "555555"
    9) "scan5"
   10) "sdfsdf"
   11) "scan6"
   12) "dsfsdf"

sscan命令

准备数据

127.0.0.1:6379> sadd hset2 scanaaaa
(integer) 1
127.0.0.1:6379> sadd hset2 scanbbbb
(integer) 1
127.0.0.1:6379> sadd hset2 scancccc
(integer) 1
127.0.0.1:6379> sadd hset2 ddddd
(integer) 1
127.0.0.1:6379> sadd hset2 scaneeeee
(integer) 1

第一次sscan

sscan hset2 0 match 'scan*' COUNT 2

返回

1) "3"
2) 1) "scanbbbb"
   2) "scaneeeee"

最后一次scan

 sscan hset2 3 match 'scan*' COUNT 2
1) "0"
2) 1) "scancccc"
   2) "scanaaaa"

zscan命令

准备数据

127.0.0.1:6379> zadd zset2 12 scan23
Error: Broken pipe
not connected> zadd zset2 12 scan23
(integer) 1
127.0.0.1:6379> zadd zset2 45 scan45
(integer) 1
127.0.0.1:6379> zadd zset2 57 scan57
(integer) 1
127.0.0.1:6379> zadd zset2 23 sdfdsds
(integer) 1

执行zscan

zscan zset2 0 match "scan*" count 2

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

fanghailiang2016

扔个包子砸我一下吧~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值