当我们需要遍历Redis所有key或者指定模式的key时,首先想到的是KEYS命令,但是如果redis数据非常大,并且key也非常多的情况下,查询的时候很可能会很慢,造成整个redis阻塞,那么有什么办法解决呢?
当然有了,今天就简单的介绍一下,如:scan和hscan
格式如下:
SCAN cursor [MATCH pattern] [COUNT count]
HSCAN key cursor [MATCH pattern] [COUNT count]
SCAN命令是一个基于游标的迭代器, 这意味着命令每次被调用都需要使用上一次这个调用返回的游标作为该次调用的游标参数,以此来延续之前的迭代过程, 当SCAN命令的游标参数被设置为 0 时, 服务器将开始一次新的迭代, 而当服务器向用户返回值为 0 的游标时, 表示迭代已结束,HSCAN同SCAN命令相同。
一、 hash操作
1,查看一下hash有多少条记录
127.0.0.1:6379[1]> hgetall pms:1
1) "stock"
2) "12"
3) "freeze"
4) "10"
5) "stock:1"
6) "11"
7) "stock:2"
8) "23"
9) "stock:freeze:1"
10) "111"
11) "stock:5"
12) &