redis集群搭建(主从关系,哨兵模式,去中心化集群)
主从关系
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-XzaUn9sm-1619408803347)(D:\AAA\笔记\radis集群搭建\redis集群搭建.assets\image-20210426083850117.png)]](https://i-blog.csdnimg.cn/blog_migrate/13386c723401e38118421e89c4070d31.png)
注意:配从不配主
新增了新节点,新节点会把之前的数据也获取。主节点挂掉,从节点等待
准备工作
1.创建了一个目录 master-slave
mkdir master-slave
2.把redis配置文件复制到master-slave
cp redis.conf master-slave/
3.在master 目录下复制三个redis 文件并重命名
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0DRz8gIE-1619408803350)(D:\AAA\笔记\radis集群搭建\redis集群搭建.assets\image-20210426084728364.png)]](https://i-blog.csdnimg.cn/blog_migrate/c8d98e783b6568ff170922e39992afd5.png)
4.分别修改上面三个文件的端口号以及rdb持久化文件的名称 并aof关闭。
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6tomXruV-1619408803353)(D:\AAA\笔记\radis集群搭建\redis集群搭建.assets\image-20210426084750373.png)]](https://i-blog.csdnimg.cn/blog_migrate/28410582ed1a49d3278280a692feeaf7.png)
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-VZ9B5cLV-1619408803354)(D:\AAA\笔记\radis集群搭建\redis集群搭建.assets\image-20210426084803981.png)]](https://i-blog.csdnimg.cn/blog_migrate/c625d7f425d6acb2e04e4bbb4bc8353f.png)
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mISvQ1jo-1619408803356)(D:\AAA\笔记\radis集群搭建\redis集群搭建.assets\image-20210426084818951.png)]](https://i-blog.csdnimg.cn/blog_migrate/a3930b64a5cb5b6c72f1d6cf97c75e59.png)
-
启动redis时指定上面的三个配置文件 (如果想要查看redis进程信息,使用:ps -ef | grep redis )
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Qzs8HK6z-1619408803358)(D:\AAA\笔记\radis集群搭建\redis集群搭建.assets\image-20210426084932040.png)]](https://i-blog.csdnimg.cn/blog_migrate/087194dce3263ec29c3abc1ba9a5c2d0.png)
6.启动三台服务器
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4QBgq9vS-1619408803360)(D:\AAA\笔记\radis集群搭建\redis集群搭建.assets\image-20210426085042259.png)]](https://i-blog.csdnimg.cn/blog_migrate/61a8fba7269463c5a10c48d1f22074f1.png)
7.使用info replication命令查看三个redis节点的信息,当前显示都是主,需要设置
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-QyLcgrtE-1619408803361)(D:\AAA\笔记\radis集群搭建\redis集群搭建.assets\image-20210426085114778.png)]](https://i-blog.csdnimg.cn/blog_migrate/44449c056274243a85589db1cb85427d.png)
8.把7001设置成为主,7002和7003设置成从我们在7002和7003使用slaveof 127.0.0.1 7001 命令
把7002和7003挂载7001上
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-rzWA3Oyk-1619408803362)(D:\AAA\笔记\radis集群搭建\redis集群搭建.assets\image-20210426091232205.png)]](https://i-blog.csdnimg.cn/blog_migrate/8152cb1c2ed50bd9dc46a25ad4257d40.png)
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1ErIMSnX-1619408803363)(D:\AAA\笔记\radis集群搭建\redis集群搭建.assets\image-20210426091259458.png)]](https://i-blog.csdnimg.cn/blog_migrate/842617c398d476935e90ecd3ab8d23a1.png)
9.主节点挂掉,从节点不会上位主节点,而是等待主节点归来。
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-i3rJCcXV-1619408803365)(D:\AAA\笔记\radis集群搭建\redis集群搭建.assets\image-20210426091358073.png)]](https://i-blog.csdnimg.cn/blog_migrate/d3b5a63cb7d3681e888e1c45f26eeaa2.png)
如果这时,有一个新得节点加入到主从上了,新节点可以把之前得数据获取。
**Redis主从复制的缺点:**没有办法对master进行动态选举,需要使用Sentinel机制完成动态选举。
哨兵模式
主从切换技术的方法是:当主服务器宕机后,需要手动把一台从服务器切换为主服务器,这就需要人工干预,费事费力,还会造成一段时间内服务不可用。这不是一种推荐的方式,更多时候,我们优先考虑哨兵模式。
哨兵模式是一种特殊的模式,首先Redis提供了哨兵的命令,哨兵是一个独立的进程,作为进程,它会独立运行。其原理是哨兵通过发送命令,等待Redis服务器响应,从而监控运行的多个Redis实例。
优点
1.哨兵集群模式是基于主从模式的,所有主从的优点,哨兵模式同样具有。
2.主从可以切换,故障可以转移,系统可用性更好。
3.哨兵模式是主从模式的升级,系统更健壮,可用性更高。
缺点
1.Redis较难支持在线扩容,在集群容量达到上限时在线扩容会变得很复杂。
2.实现哨兵模式的配置也不简单,甚至可以说有些繁琐
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZQ7TOiW9-1619408803366)(D:\AAA\笔记\radis集群搭建\redis集群搭建.assets\image-20210426091827444.png)]](https://i-blog.csdnimg.cn/blog_migrate/41b1c25f94707cde49508d618e7e5eeb.png)
前提:先配置好主从关系,并且启动主从服务,连接上主从redis服务器!见以上操作。在执行以下操作:
修改sentinel.conf的配置
127.0.0.1表示redis主节点的ip
6379 表示主节点的端口号
2 表示有多少个哨兵选取redis从节点后,该从节点可以当选为主节点。
sentinel monitor mymaster 127.0.0.1 7001 1

启动哨兵
redis-sentinel sentinel.conf
总结:当主机挂掉之后就会从从机选举出来一个主机,当挂掉的主机再次活过来。依然是从,不能变成主机。
去中心化集群
![(img-RUwbhrqw-1619408803371)(D:\AAA\笔记\radis集群搭建\redis集群搭建.assets\image-20210426092653698.png)]](https://i-blog.csdnimg.cn/blog_migrate/decaff7dc8bf4956875e84db87db45b2.png)
准备工作
(1)先创建一个目录
three-master-three-slave
(2)把redis.conf配置文件赋值到three-master-three-slave里面
注意:这里要用最原始的配置文件,不能用配置哨兵的配置文件
(3)需要修改redis.conf的以下配置
port 8001
bind 0.0.0.0
daemonize yes
appendonly yes # 是否以append only模式作为持久化方式,默认使用的是rdb方式持久化,这 种方式在许多应用中已经足够用了
注意:必须保证aof开启,保证redis中没有数据。
开启集群
cluster-enabled yes (833行)
集群的配置文件,该文件自动生成
cluster-config-file nodes-8001.conf (841行)
集群的超时时间
cluster-node-timeout 5000 (847行)
(4)启动所有的redis
redis-server redis-8001.conf
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hhKRm9rb-1619408803372)(D:\AAA\笔记\radis集群搭建\redis集群搭建.assets\image-20210426092917923.png)]](https://i-blog.csdnimg.cn/blog_migrate/f84e7809c494640590ab4a26cff0b486.png)
已经启动成功
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-IVWARo7S-1619408803374)(D:\AAA\笔记\radis集群搭建\redis集群搭建.assets\image-20210426092953113.png)]](https://i-blog.csdnimg.cn/blog_migrate/0e72277e82bdefc6d0e635a644ebcce9.png)
(5)为主节点分配槽以及分配从节点
cluster-replica:每个主节点跟随的从节点的个数
redis-cli --cluster create --cluster-replicas 1 127.0.0.1:8001 127.0.0.1:8002 127.0.0.1:8003 127.0.0.1:8004 127.0.0.1:8005 127.0.0.1:8006
注意:前三个公网ip已经端口号都表示主机,后三个表示从机
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-M24KKqCG-1619408803375)(D:\AAA\笔记\radis集群搭建\redis集群搭建.assets\image-20210426093113130.png)]](https://i-blog.csdnimg.cn/blog_migrate/9f3b0520677c62c84115be8e0a98de77.png)
(6)客户端访问:
redis-cli -c -h 127.0.0.1 -p 8001
(7)将8001挂掉(主机),8004(从机)就会上位成为主机
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6Yj3ohkw-1619408803376)(D:\AAA\笔记\radis集群搭建\redis集群搭建.assets\image-20210426093228864.png)]](https://i-blog.csdnimg.cn/blog_migrate/3019a6eefd5d87ac20f93480ed885664.png)
所以:
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-HtewWP36-1619408803376)(D:\AAA\笔记\radis集群搭建\redis集群搭建.assets\image-20210426093252980.png)]](https://i-blog.csdnimg.cn/blog_migrate/00550bea61e309b66eb484bcbf6e58a9.png)
(8)8001如果再回来,仍然是从,不会再变成主
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dMq7D4Oq-1619408803377)(D:\AAA\笔记\radis集群搭建\redis集群搭建.assets\image-20210426093327853.png)]](https://i-blog.csdnimg.cn/blog_migrate/f4c4305d44689ee725e4428020d57308.png)
注意:在任何一个节点操作都会跳走
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-btybW2u2-1619408803378)(D:\AAA\笔记\radis集群搭建\redis集群搭建.assets\image-20210426093342454.png)]](https://i-blog.csdnimg.cn/blog_migrate/322ff2d2f62d252d13b078c619754621.png)
本文详细介绍了Redis的三种集群模式:主从模式、哨兵模式和去中心化集群。在主从模式中,主节点挂掉后从节点不会自动提升为主,需要手动操作。哨兵模式则提供了自动故障转移,增强了系统的可用性。而去中心化集群通过Cluster实现,允许动态扩展和故障恢复。然而,Redis的在线扩容和配置相对复杂。
1087

被折叠的 条评论
为什么被折叠?



