我正在编写django管理命令来处理一些我们的Redis缓存。基本上,我需要选择所有确认为特定模式的键(例如:“ prefix:*”)并删除它们。
我知道我可以使用cli来做到这一点:
redis-cli KEYS "prefix:*" | xargs redis-cli DEL
但是我需要在应用程序中执行此操作。所以我需要使用python绑定(我正在使用py-redis)。我尝试将列表送入Delete中,但是失败了:
from common.redis_client import get_redis_client cache = get_redis_client() x = cache.keys('prefix:*') x == ['prefix:key1','prefix:key2'] # True
# 现在
cache.delete(x)
#返回0。什么都没有删除
我知道我可以遍历x:
for key in x: cache.delete(key)
但这将失去redis出色的速度并滥用其功能。是否有带py-redis的pythonic解决方案,没有迭代和/或cli?
谢谢!
我觉得
非常好,简洁。 delete确实一次只想要一把钥匙,所以您必须循环。
delete