盛世宏图 发表于 2024-8-24 11:07:03

redis的集群模式

目次
1. 为什么使用redis集群
2. 主从模式
2.1修改设置文件
 2.2 开启三台redis服务
 2.3设置主从关系
3. 哨兵模式
3.1 监控功能
3.2 推选的机制
3.3 准备条件
4. 去中央化模式
4.1 准备三主三从
4.2 启动redis
4.3 分配槽以及主从关系
4.4 命令行的客户端

redis提供了三种集群模式。


[*]第一种: 主从模式。(3以下)
[*]第二种: 哨兵模式。(5以下)
[*]第三种: 去中央化模式。
1. 为什么使用redis集群

进步并发量,进步了可用性。
2. 主从模式(3版本以下)

redis主从模式表示一个主节点跟多少个从节点。 主节点可以负责写操作和读操作。而从节点只负责读操作。主节点的数据会自动同步到所有的从节点上。
https://i-blog.csdnimg.cn/direct/0cf28d57878e43c2a7ca0648af02b52c.png
 我们为了操作方便: 我在一台linux上跑三个redis服务器。 只要端口号不同即可。
2.1修改设置文件



[*]端口号
https://i-blog.csdnimg.cn/direct/0032a07cfa704572a09155d6e78f68ce.png


[*]dump文件的名称
https://i-blog.csdnimg.cn/direct/8d5b28bd858b46c79538056863a3a01c.png


[*]aof的名称
https://i-blog.csdnimg.cn/direct/e7ebc35a1b484fc8ab7cefeaf7b193df.png

 2.2 开启三台redis服务

redis-server redisXXX.conf https://i-blog.csdnimg.cn/direct/8fad58735594465b8f8feaba16ac67f4.png
 2.3设置主从关系

配从不配主,slaveof 主节点IP 主节点port。
info replication:检察主从的状态。
https://i-blog.csdnimg.cn/direct/024f5f63ac0a46aba1a9568b49874413.png
思索:
1. 假如某台slave宕机,假如规复后是否具有master新增的数据呢。 
2. master宕机后,slave会不会自动推选拉大。 [不会] 
发现主从模式的缺点: 不会自动推选master节点。导致一旦主节点宕机,无法进行写操作。
3. 哨兵模式(3版本到5版本)

为了解决主从模式的缺陷:当主节点宕机后,从节点无法直接上位。
https://i-blog.csdnimg.cn/direct/13cc1ba9fe574177b01c40d98406dadc.png
3.1 监控功能

https://i-blog.csdnimg.cn/direct/c8a8fd125ad14099915c9cc3b364cbfe.png
搭建sentinel服务时,只管搭建奇数个。
3.2 推选的机制

https://i-blog.csdnimg.cn/direct/ea907b13a7e64f5cb2e74dde4456bd40.png
3.3 准备条件

修改sentinel.conf:
https://i-blog.csdnimg.cn/direct/63612c6d92f74876a306e6527d13639b.png
启动哨兵服务:
redis-sentinel sentinel.conf https://i-blog.csdnimg.cn/direct/d5bf2b974ddf4e359940d70445f3f74d.png
4. 去中央化模式(5版本以上)

https://i-blog.csdnimg.cn/direct/7c77af1474cc4a1bb4882da3b239aa5b.png
redis 集群中内置了 16384 个哈希槽,当需要在 Redis 集群中放置一个 key-value时,redis 先对 key 使用 crc16 算法算出一个整数效果,然后把效果对 16384 求余数,如许每个 key 都会对应一个编号在 0-16383 之间的哈希槽,redis 会根据节点数量大致均等的将哈希槽映射到不同的节点。
当你往Redis Cluster中加入一个Key时,会根据crc16(key) mod 16384计算这个key应该分布到哪个hash slot中,一个hash slot中会有许多key和value。你可以明白成表的分区,使用单节点时的redis时只有一个表,所有的key都放在这个表里;改用Redis Cluster以后会自动为你生成16384个分区表,你insert数据时会根据上面的简单算法来决定你的key应该存在哪个分区,每个分区里有许多key。
4.1 准备三主三从


[*]修改端口
[*]dump文件名
[*]aof文件名
[*]aof目次名
[*]开启集群模式cluster-enabled yes
[*]cluster-config-file nodes-7000.conf
https://i-blog.csdnimg.cn/direct/7b9f0f16f00f46739b70cdeaa35f2fc6.png
https://i-blog.csdnimg.cn/direct/afca612a18da47559e5a2d28b026cda3.png
4.2 启动redis

https://i-blog.csdnimg.cn/direct/50142d16f11e462faee015fb706564c6.png
4.3 分配槽以及主从关系

分槽,以及设置主从关系。 副本
redis-cli --cluster create --cluster-replicas 1 192.168.111.188:7001 192.168.111.188:7002 192.168.111.188:7003 192.168.111.188:7004 192.168.111.188:7005 192.168.111.188:7006 
https://i-blog.csdnimg.cn/direct/ef54fbd0c2a3475b9411a963b6fd8b42.png
4.4 命令行的客户端

redis-cli -c -h 192.168.111.188 -p 7006
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: redis的集群模式