redis - 在 Redis 中使用 RENAME 时确保新旧键值具有相同的哈希标记
问题描述
Redis 文档提到了有关RENAME命令的警告:
在集群模式下,key 和 newkey 必须在同一个哈希槽中,这意味着实际上只有具有相同哈希标签的键才能在集群中可靠地重命名。
我知道我可以使用CLUSTER KEYSLOT命令确保我的旧键值和新键值具有相同的哈希标记,但如果它们不这样做我该怎么办?继续选择随机值,直到找到一个有效的值?
解决方案
您应该在键中添加一个哈希标签,而不是更改键槽映射。如果你的旧key和新key都有相同的hash tag,例如old: old-key-{hash-tag}, new: new-key-{hash-tag},保证它们在同一个hash slot ,就可以成功重命名了。
如果您无法更改旧密钥以添加哈希标签,您可以使用旧密钥作为新密钥的哈希标签,例如 old: old-key, new: {old-key}-new-key . 这也确保了旧密钥和新密钥都位于同一插槽中。
推荐阅读
- javascript - JavaScript 和警报弹出没有在 wordpress 中运行,即使 gulpfile.js 运行
- github - 如何在 GitHub Actions 中声明环境变量时执行字符串操作
- apache-kafka - Kafka - 即使应用程序仅配置一次且持久性最高,也会丢失消息
- regex - 如何使用正则表达式 python 将文本添加到 url 路径中?
- r - 计算 R studio 中每个观察值的常见事件数和分类变量中的值
- mysql - 在 Laravel 6 中重复密钥更新?
- angular - 在 vm-clarity 树中使用拖放
- ruby-on-rails - 从功能规范中发现难以模拟 request.referrer
- powershell - Import-PfxCertificate 返回 FileNotFoundException
- r - CART - 创建预测值时出错