redis - 如何删除与 Redis 集群中的模式匹配的键
解决方案
该问题的答案尝试删除单个DEL
. 但是,匹配给定模式的键可能不在同一个槽中,如果这些键不属于同一个槽,Redis 集群不支持多键命令。这就是您收到错误消息的原因。
为了解决此问题,您需要DEL
一一对应这些键:
redis-cli --scan --pattern "foo*" |xargs -L 1 redis-cli del
command的-L
选项xargs
指定要删除的键的数量。您需要将此选项指定为1
.
为了删除与模式匹配的所有键,您还需要为集群中的每个主节点运行上述命令。
笔记
使用此命令,您必须一个一个地删除这些键,这可能会很慢。您需要考虑重新设计数据库,并使用哈希标签使匹配模式的键属于同一个槽。这样您就可以在单个
DEL
.要么 要么
SCAN
命令KEYS
效率低下,尤其是KEYS
不应在生产中使用。您需要考虑为这些键建立索引。
推荐阅读
- rabbitmq - RabbitMQ 在单个应用程序中同时作为生产者和消费者
- c++ - 引用结构中的 C++ 内存管理
- java - 互操作性:在 Java 和 Scala 之间共享对象或 Row 的数据集,两种方式。我将 Scala 数据集操作放在 Java 的中间
- c - CS50 可读性,如何打印字母总数?
- swagger-ui - Swagger UI - 添加 curl 示例,禁用“试用”按钮
- python - 是否有 k-NN 的 GPU/并行化 python 实现在加或减一点时不会重建 KDTree?
- xmpp - 如何在 MongooseIM 的服务器端使用 webhook 创建机器人用户?
- r - 编织ar markdown文件时as.data.frame.default中的错误
- android - Android 设备无法在 Wifi 上使用 REST 服务
- neo4j - 如何在 Neo4j 中创建多个属性的约束