Lua脚本执行多个redis命令提示“CROSSSLOT Keys in request don‘t hash to the same slot“问题

这是由之前需求引发的问题,之前写了篇刀耕火种之手攒基于redis实现防短信轰炸方案-CSDN博客,需求一直没上线,最近压测时,为了让测试环境接近生产环境,将redis换成了集群,于是就有了这个报错,原因是在集群模式下,所有涉及到多个 key的Redis指令,都要求所有的 key处于同一个 slot,如果 slot不同,哪怕实际上这些 slot都在同一个结点上,也会报这个错(这段是我抄的(lll¬ω¬))。

如果不改变现有的用法,那目标就很明确,让所有key都落到同一个slot中,Redis提供了Hash Tag功能,在计算slot时,只计算Hash Tag内的内容,这样我们可以控制一些key强制落到同一slot,方法也很简单,通过在 key 中指定一个特殊的标记({}),让 Redis 只对标记内的内容计算 slot,而不是对整个 key 计算。调整后的key长这样:

更多内容可以参考这篇文章,我就不展开写了:一致性Hash算法延伸至Redis分片扩容使Lua脚本失效如何解决_16.lua脚本在使用中要操作key,但是在不同节点上,会不会有问题?主从,哨兵,切片?怎-CSDN博客

相关推荐
Micro麦可乐1 天前
Spring Boot 实战:从零设计一个短链系统(含完整代码与数据库设计)
数据库·spring boot·后端·哈希算法·雪花算法·短链系统
cfm_29141 天前
Redis五大基本数据结构底层了解
数据结构·数据库·redis
真实的菜1 天前
Redis 从入门到精通(十二):典型业务场景实战 —— 排行榜、限流器、秒杀系统、Session 共享
数据库·redis·python
电报号dapp1191 天前
DApp经济模型设计:2026年反泡沫完全指南
区块链·智能合约·哈希算法
x***r1511 天前
Redis Desktop Manager 0.8.8 安装教程(Windows redis-desktop-manager-0.8.8.384详细步骤)
数据库·windows·redis
无涯大者1 天前
Redis 实现页面缓存、购物车、登录 token示例、点赞 / 阅读计数,排行榜 示例
redis·缓存
Lyyaoo.1 天前
【数据结构】HashMap底层存储+扩容机制+线程安全【待更新】
数据结构·安全·哈希算法
子琦啊1 天前
哈希与前缀和
算法·哈希算法
真实的菜1 天前
Redis 从入门到精通(十三):性能优化与运维实战 —— 慢查询、内存优化、监控与安全
运维·redis·性能优化
Java 码思客2 天前
【Redis分布式缓存实战】第20章 Redis监控运维与自动化体系
运维·redis·缓存