redis scan 语法
时间: 2024-12-26 21:24:08 浏览: 8
### Redis SCAN 命令语法
SCAN 是一种增量迭代器命令,用于逐步遍历键空间。其基本语法结构如下:
```plaintext
SCAN cursor [MATCH pattern] [COUNT count]
```
- `cursor` 表示游标的初始值,通常从 0 开始。
- `MATCH pattern` 可选参数,指定要匹配的模式[^2]。
- `COUNT count` 可选参数,建议每次迭代返回的最大元素数量。
#### 使用示例
假设有一个场景需要查找所有以 "user:" 开头的键,并希望每批处理不超过10个键,则可以这样调用 SCAN:
```bash
SCAN 0 MATCH user:* COUNT 10
```
此命令会返回一批符合条件的结果以及新的游标位置。当游标变为 0 时表示已经完成整个数据库的扫描过程[^3]。
为了更清晰展示如何连续使用 SCAN 进行完整的遍历操作,下面给出一段 Python 实现的例子来模拟这一流程:
```python
import redis
r = redis.Redis()
def scan_keys(pattern='*', batch_size=10):
""" 扫描并打印符合给定模式的所有键 """
cursor = '0'
while True:
cursor, keys = r.scan(cursor=cursor, match=pattern, count=batch_size)
for key in keys:
print(key.decode())
if cursor == '0':
break
# 测试函数
scan_keys('user:*')
```
这段代码定义了一个名为 `scan_keys` 的辅助方法,接收两个可选参数:一个是用来过滤键名的通配符表达式;另一个是指定单次查询最大记录数。内部循环不断请求下一页直到全部读取完毕为止。
阅读全文