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博客

相关推荐
召田最帅boy9 小时前
centos7安装Redis6并设置密码
redis·centos
cui_win10 小时前
Prometheus实战教程 - Redis 监控
数据库·redis·prometheus
Macbethad10 小时前
自动化测试技术报告
开发语言·lua
@淡 定13 小时前
Redis持久化机制
数据库·redis·缓存
Wpa.wk14 小时前
接口测试 - 接口测试工具 Postman-基础使用
经验分享·测试工具·lua·postman
それども14 小时前
浏览器CSR和SSR渲染区别
javascript·lua
@淡 定15 小时前
主流缓存中间件对比:Redis vs Memcached
redis·缓存·中间件
阿佳举世无双15 小时前
快速启动redis
数据库·redis·缓存
星辰_mya16 小时前
redis主从同步-概览
数据库·redis·缓存
酸菜牛肉汤面16 小时前
5、索引的数据结构(b+树,hash)
数据结构·b树·哈希算法