首页 > 数据库 >redis7基础篇3 redis的集群模式3

redis7基础篇3 redis的集群模式3

时间:2025-01-05 09:32:58浏览次数:3  
标签:hash Redis redis7 redis 集群 16384 节点

一  集群模式

1.1 redis的集群模式

Redis集群模式,实现数据集在多个节点进行共享,支持多个master节点。

Redis集群支持多个master,每个master节点又可以挂载多个slave;由于cluster自带sentinel的故障转移机制,内置高可以用的支持,无需要去使用哨兵模式。

客户端与redis的节点连接,不需要连接集群中所有的节点,只需要任意连接集群中的一个可用节点即可。

Redis集群不保证强一致性,这意味着在特定的条件下,redis集群可能会丢掉一些被系统收到的写入请求命令。

1.2 redis的哈希槽位slot的概念

Redis槽位(Slot)是Redis集群中的一个重要概念,它是一个0到16383之间的整数,用于表示一个数据分片。Redis集群将所有的键均匀分布在16384个槽位上,每个槽位存储一个或多个键。这种分片机制旨在将数据分散存储在多个节点上,以提高数据的并发访问能力和存储容量。

Redis槽位的主要作用是实现数据分片,从而支持Redis集群的横向扩展。通过将数据分散存储在多个节点上,Redis集群能够

提高并发访问能力‌:多个节点可以同时处理请求,提高系统的吞吐量。

增强存储容量‌:随着节点的增加,集群的总存储容量也会相应增加。

实现负载均衡‌:数据均匀分布在各个节点上,避免单点过载。

1.3 redis的哈希槽位slot的作用

Redis集群中没有使用一致性hash,而是使用hash槽的概念,redis集群中有16384个哈希槽,每个key通过CRC16校验后对16384取模得到hash值,来决定存储到那个槽,集群中的每个节点负责一部分hash槽。

使用redis集群时我们将数据分散到多台redis实例上,每个实例上的数据为整个数据的一个分片。如下:

最大的优势:方便扩容和数据分派查找;无论添加或删除或改变某个节点的哈希槽的数量不会造成集群不可用状态。

1.4 redis的槽位映射的三种方式

Redis的slot的槽位映射,一般有3种模式:

1.哈希取模 hash(key/3);对机器节点数进行取模,缺点:新增机器或者宕机,需要重新计算。

2.一致性hash:一致性Hash算法是对2^32取模。缺点:数据的分布和节点的位置有关,因为这些节点不是均匀的分布在哈希环上的,所以数据在进行存储时达不到均匀分布的效果。即一致性hash算法存在数据倾斜问题。

3.hash槽:Redis集群并没有使用一致性hash而是引入了哈希槽的概念。Redis 集群有16384个哈希槽,每个key通过CRC16校验后对16384取模来决定放置哪个槽,集群的每个节点负责一部分hash槽。HASH_SLOT = CRC16(key) mod 16384

1.5 为何redis的最大哈希槽为16384?

Redis集群的最大槽数设计为16384个是基于性能、资源利用和实际使用情况的综合考虑。这个数值既保证了集群的稳定性和性能,又避免了不必要的资源浪费。2的14方为此值。为什么 Redis 集群的最大槽数是 16384 个?_为什么redis集群的最大槽数是16384个-CSDN博客

二   集群模式 的搭建

2.1 

标签:hash,Redis,redis7,redis,集群,16384,节点
From: https://blog.csdn.net/u011066470/article/details/144922961

相关文章

  • Redis缓存三剑客
    为什么会存在缓存三剑客的问题我们要知道我是引路缓存的主要目的是减少大量对数据库的直接访问请求导致数据库扛不住这么多并发而宕机。如果单单只把数据放入缓存这个操作,在某些情况下还是会发生大量请求打在数据库。缓存击穿比如当我们一个热点key(经常被访问的数据)突然过期......
  • 【详解】Spring整合Redis
    目录Spring整合Redis1.环境准备1.1技术栈1.2工具2.添加依赖3.配置Redis4.创建Redis配置类5.使用RedisTemplate6.测试7.总结1.添加依赖2.配置Redis连接3.创建Redis配置类4.创建服务类5.创建控制器6.启动应用7.测试API1.添加依赖2.配置Redi......
  • 面试提问:Redis为什么快?
    Redis为什么快?引言Redis是一个高性能的开源内存数据库,以其快速的读写速度和丰富的数据结构支持而闻名。本文将探讨Redis快速处理数据的原因,帮助大家更好地理解Redis的内部机制和性能优化技术。目录完全基于内存高效的内存数据结构单线程模型I/O多路复用技术简单高效的通......
  • MongoDB集群中数据分布与分片
    MongoDB集群中数据分布Chunk是什么在一个shardserver内部,MongoDB还是会把数据分为chunks,每个chunk代表这个shardserver内部一部分数据。chunk的产生,会有以下两个用途:Splitting:当一个chunk的大小超过配置中的chunksize时,MongoDB的后台进程会把这个chunk切分成更小的chunk,从......
  • Windows单机安装MongoDB分片集群
    Windows单机部署MongoDB分片集群规划和准备端口规划操作系统:WindowsServer2012MongoDB版本:4.2.25IP/节点名mongosconfigshard1shard2shard3127.0.0.1(mongo1)mongos1(27017)config1(27018)主(27001)主(27002)主(27003)127.0.0.1(mongo2)mongos2(27027)c......
  • 【kafka】Kafka-Kraft 集群模式
    1.概述左图为Kafka现有架构,元数据在zookeeper中,运行时动态选举controller,由controller进行Kafka集群管理。右图为kraft模式架构(实验性),不再依赖zookeeper集群,而是用三台controller节点代替zookeeper,元数据保存在controller中,由controller直接进行Kafk......
  • Redis数据库笔记——内存分配器
    大家好,这里是GoodNote,关注公主号:Goodnote,专栏文章私信限时Free。本文详细介绍Redis数据库的内存分配器,这是redis为什么这么快的原因,以及其作为内存数据库的内存管理策略。文章目录Redis的内存分配器内存分配器的作用Redis支持的内存分配器jemalloclibcmalloctc......
  • Redis数据库——内存淘汰机制
    本文详细介绍Redis的8种内存淘汰机制。文章目录过期键删除策略内存淘汰机制内存限制设置常见策略Redis3.0的淘汰机制——近似LRU算法Redis4.0的新增的淘汰机制——LFU算法过期键删除策略Redis为管理内存,对设置了过期时间的键采用了以下三种删除策略......
  • Redis 实现分布式锁
    文章目录引言一、Redis的两种原子操作1.1Redis的原子性1.2单命令1.3Lua脚本1.4对比单命令与Lua脚本二、Redis实现分布式锁2.1分布式锁的概念与需求2.1.1什么是分布式锁?2.1.2分布式锁的常见应用场景2.2基于Redis的分布式锁实现2.2.1锁的获取与释放2.2.2......
  • docker安装redis5
    1、拉取镜像dockerpullredis:5.02、docker运行容器dockerrun--nameredis5--networksome-network-dredis:5.03、docker-compose3.1、在当前目录下,创建conf目录,并添加redis.conf配置文件redis配置文件,可从:https://mirrors.huaweicloud.com/redis/下载相应的版......