laravel使用redis集群报错“CROSSSLOT Keys in request don't hash to the same slot”解决

在laravel中连接了redis集群,同时将队列驱动也设置成为了redis,在不修改默认代码的情况下向队列中写入任务,就会看到标题中的报错

CROSSSLOT Keys in request don't hash to the same slot

问了AI给出的回答是:

在使用 Redis 集群时,CROSSSLOT Keys in request don't hash to the same slot 错误表示你在单个命令中使用的多个键没有被哈希到同一个槽(slot)。Redis 集群要求在单个命令中使用的所有键必须位于同一个槽中,以确保数据的一致性和操作的原子性。

同时结合多方解决方案的搜索结果,最终我的修改点是在环境变量中添加REDIS_QUEUE={queue},原理这篇博客讲的比较简单明了了,可以参考 https://blog.csdn.net/shaofei_huai/article/details/119547945

另外附上解决过程中参考的其他文章,希望对大家有帮助:

  1. https://inspector.dev/resolved-crossslot-keys-error-in-a-cluster-mode-enabled-redis/
  2. https://www.wadestriebel.com/articles/crossslot-keys-error-laravel-horizon-aws-serverless-redis
  3. https://github.com/laravel/horizon/issues/913

posted on 2025-03-04 17:44  苏维埃的苏  阅读(397)  评论(0)    收藏  举报

导航