redisCache清除键值包含某个字符串的数据
时间: 2024-03-09 17:45:56 浏览: 58
可以使用 Redis 的 `KEYS` 命令来查找所有包含某个字符串的键名,并使用 `DEL` 命令删除这些键对应的值。但是,使用 `KEYS` 命令会阻塞 Redis 服务器,因为它需要遍历整个数据库。因此,最好使用 `SCAN` 命令来逐步迭代数据库中的键名,找到符合条件的键名再进行删除操作。
以下是一个示例 Python 代码,用于删除 Redis 中所有键名包含字符串 `example` 的键值对:
```python
import redis
r = redis.Redis(host='localhost', port=6379, db=0)
cursor = 0
while True:
# 每次迭代获取 100 个键名
cursor, keys = r.scan(cursor=cursor, match='*example*')
for key in keys:
# 删除键值对
r.delete(key)
if cursor == 0:
# 已经迭代完所有键名,退出循环
break
```
需要注意的是,使用 `SCAN` 命令迭代数据库时,如果在迭代过程中有新的键名被添加或删除,可能会导致迭代结果不准确。因此,最好在单独的线程中执行该操作,并在操作前后记录数据库大小,确保操作的正确性。
阅读全文