当前位置: 首页 > 知识库问答 >
问题:

单碎片Redis集群如何给CROSSSLOT错误?

柯锋
2023-03-14
e51c5f84e60116be3cb9d6734fc0c4deb1fde4c4 172.31.6.149:6379@1122 slave c07ed67b7df1a9d4475702c944a43ad38c6954ba 0 1531143884198 1 connected
c07ed67b7df1a9d4475702c944a43ad38c6954ba 172.31.21.122:6379@1122 myself,master - 0 0 1 connected 0-16383

我可以像这样重现错误:

telnet 172.31.21.122 6379

SETEX redis-test-1 3600 whatever
+OK
SETEX redis-test-2 3600 whatever
+OK

KEYS redis-test*
*2
$12
redis-test-2
$12
redis-test-1

DEL redis-test-1 redis-test-2
-CROSSSLOT Keys in request don't hash to the same slot

共有1个答案

微生昌胤
2023-03-14

这也把我搞糊涂了。Redis代码要求密钥散列到相同的槽(而不是相同的节点),我不明白为什么会这样,因为集群规范说了以下内容(重点是我的):

Redis集群实现了Redis非分布式版本中可用的所有单键命令。执行复杂的多键操作的命令,如集合、类型、联合或交集,只要键都属于同一个节点就可以实现。

我打开了一个关于GH的问题:https://github.com/antirez/redis/issues/5118

 类似资料:
  • 下面是我的代码。 有没有人能帮我解决这个mainActivity和片段代码中的logcat的问题。

  • Redis 集群(Redis Cluster) 是 Redis 提供的分布式数据库方案。 既然是分布式,自然具备分布式系统的基本特性:可扩展、高可用、一致性。 Redis 集群通过划分 hash 槽来分片,进行数据分享。 Redis 集群采用主从模型,提供复制和故障转移功能,来保证 Redis 集群的高可用。 根据 CAP 理论,Consistency、Availability、Partition

  • 问题内容: 有人知道Redis复制和Redis分片之间的区别吗? 它们有什么用?Redis将数据存储在内存中,这如何影响复制/分片? 可以同时使用它们吗? 问题答案: 分片几乎是复制的对立面,尽管它们是正交的概念并且可以很好地协同工作。 分片,也称为分区,是通过密钥对数据进行拆分。复制(也称为镜像)是复制所有数据。 分片有助于提高性能,减少任何一种资源的命中和内存负载。复制对于获得高可用性的读取很

  • 背景:我刚刚读完Apache Solr 4 Cookbook。作者在其中提到需要明智地设置分片b/c新分片不能添加到现有集群中。但是,这是使用Solr 4.0编写的,目前我正在使用4.1。情况仍然如此吗?我希望我没有发现这个问题,我希望有人能告诉我其他情况。 问:在SolrCloud集群中设置分片时,我是否应该知道我将来会存储多少数据?我玩过Solandra并阅读了弹性搜索,但老实说,我是Solr

  • 为 Redis 自带的主从复制提供主从切换方案。 2. TwenProxy 3. Redis Cluster 4. Codies 参考资料 Redis 集群方案