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

后端 - 关于 redis集群的局限性问题?

惠文彬
2023-11-10

https://blog.csdn.net/chouhui0263/article/details/100744275
这里面提到了一点:

key作为数据分区的最小粒度读,因此不能将一个大的键值对象如hash、list等映射到不同的节点。

问题:

1.什么情况下 一个大的键值对象如hash、list等 会 映射到 不同的节点?

2.我的理解,redis中的hash命令是 hset hashKey key value ,其中只有hashKey参与
crc16(hashKey)&16384 计算 哈希对象值所在的槽位。 而不是hashkey+key参与运算。

也就是说同一个hash对象的所有 键值对会位于同一个slot中。 这个理解对吗?

共有2个答案

司空奕
2023-11-10

1.什么情况下 一个大的键值对象如hash、list等 会 映射到 不同的节点?
看这篇文章的描叙,集群化理想状态是把大的key也能实现分段存储,避免资源倾斜,但是redis集群并没有实现这个功能

吉玉石
2023-11-10
  1. 当你的数据分区策略是将一个大的键值对象如hash、list等作为一个整体存储在Redis集群的一个节点上时,就会出现一个大的键值对象映射到不同的节点的情况。例如,你可能将一个大的hash对象作为一个整体存储在Redis集群的节点上,而这个hash对象又被分为多个键值对。如果这个节点因为某些原因失效了,那么这个大的hash对象就会丢失,并且无法恢复。
  2. 你的理解是正确的。在Redis中,哈希命令是hset hashKey key value,其中只有hashKey参与crc16(hashKey)&16384计算哈希对象值所在的槽位。也就是说,同一个哈希对象的所有键值对都会位于同一个槽位中。因此,如果一个槽位对应的节点失效了,那么该槽位上存储的所有数据都会丢失,并且无法恢复。这也意味着,如果一个大的键值对象被分配到了多个槽位上,那么如果其中一个节点失效了,那么该键值对象的一部分数据就会丢失。这是Redis集群的一个局限性。
 类似资料:
  • 我试图在CentOS上使用kubernetes创建redis集群。我的kubernetes主服务器运行在一台主机上,而kubernetes从服务器运行在两台不同的主机上。 kubectl create-f RC.Yaml 使用的Redis-config文件 我使用以下命令创建kubernetes服务。 ./redis-trib.rb创建-副本1 172.30.79.2:6379 172.30.79

  • 本文向大家介绍Redis集群的相关详解,包括了Redis集群的相关详解的使用技巧和注意事项,需要的朋友参考一下 注意!要求使用的都是redis3.0以上的版本,因为3.0以上增加了redis集群的功能。 1.redis介绍 1.1什么是redis Redis是用C语言开发的一个开源的高性能键值对(key-value)的非关系型数据库。通过多种键值数据类型来适应不同场景下的存储需求,目前支持的键值数

  • 我有一个用例,我想建立一个Kafka集群,最初我有1个Kafka Broker(A)和1个Zookeeper节点。以下是我的疑问: > 在向集群添加新的Kafka Broker(B)时。代理A上存在的所有数据都会自动分发吗?如果不是,我需要做的是分发数据。 不,让我们假设情况以某种方式解决了!我的数据分布在两个代理上。现在由于一些维护问题,我想关闭服务器B。 如何将经纪商B的数据传输到已经存在的经

  • 今天回北京了,想把在外地做的集群移植回来,需要修改ip地址和一些配置参数,结果在配置的过程中,总是会有一些提示,说是我的机器之间的认证权限有问题。所以对照以前写的安装手册,把ssh重新配置了一遍。但是发现在启动的时候还是有提示,说是我的ssh有错误,还是需要输入yes和密码来登录。总结了一下,内容如下: 1、hadoop的ssh配置namenode无密码访问datanode需要配置各个机器,详细步

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

  • 我浏览了https://docs.aws.amazon.com/cdk/api/latest/python/aws_cdk.aws_elasticache.html。 如何使用AWS-CDK创建Elasticache Redis模板。如果您共享示例代码会更有帮助。