我已经在这个问题中尝试过方法,但是由于我在集群模式下工作,因此它不起作用,redis告诉我:
(错误)CROSSSLOT请求中的键未哈希到同一插槽
该问题的答案尝试在一个中删除多个键DEL。但是,与给定模式匹配的键可能不会位于同一插槽中,并且如果这些键不属于同一插槽,则Redis Cluster不支持多键命令。这就是为什么您收到错误消息。
DEL
为了解决此问题,您需要DEL一对一地使用以下密钥:
redis-cli --scan --pattern "foo*" |xargs -L 1 redis-cli del
该-L用于选项xargs命令指定键删除的数目。您需要将此选项指定为1。
-L
xargs
1
为了删除所有与模式匹配的键,您还需要对集群中的每个主节点运行以上命令。
注意
使用此命令,您必须一个一个地删除这些密钥,这可能会很慢。您需要考虑重新设计数据库,并使用 哈希标记 使与模式匹配的键属于同一插槽。这样您就可以一次删除这些键DEL。
任一SCAN或KEYS命令是低效的,特别是,KEYS不应该在生产中使用。您需要考虑为这些键建立索引。
SCAN
KEYS