Redis主从复制架构

Redis主从复制架构

主从复制架构

主从复制架构仅仅用来解决数据的冗余备份,从节点仅仅用来同步数据

主从复制架构图

搭建主从复制环境

# 1 创建 master salve1 salve2 三个目录
	mkdir master salve1 salve2
# 2 准备三台机器并修改配置
- master
	port 6379
	bind 0.0.0.0
	
- slave1
	port 6380
	bind 0.0.0.0
	slaveof masterip masterport
	replicaof masterip masterport
		
- slave2
	port 6381
	bind 0.0.0.0     //开启远程连接
	slaveof masterip masterport
	//redis 5 版本之后
	replicaof masterip masterport

image-20200906210305762

# 3 启动3台机器进行测试
	cd /usr/redis/bin
	./redis-server /root/master/redis.conf
	./redis-server /root/slave1/redis.conf
	./redis-server /root/slave2/redis.conf

存在问题

无法解决master节点出现故障的自动故障转移功能


Redis哨兵机制

哨兵Sentinel机制

​ Sentinel(哨兵)是Redis的高可用性解决方案;由一个或多个Sentinel实例 组成的Sentinel系统可以监视任意多个主服务器,以及这些主服务器属下的所有从服务器,并在被监视的主服务器进入下线状态时,自动将下线主服务器属下的某个从服务器升级微信的主服务器,简单的说哨兵就是带有自动故障转移功能的主从架构.

哨兵架构原理

如图:

在Server1 掉线后:

升级Server2 为新的主服务器:

搭建哨兵架构

# 1 在主节点上创建哨兵配置
- 在Master对应redis.conf同目录下新建sentinel.conf文件		名字绝对不能错

# 2 配置哨兵,在sentinel.conf文件中填入内容:
- sentinel monitor 被监控数据库名字  ip port 1
		说明:这个后面的数字1,是指当有一个及以上的sentinel服务检测到master宕机,才会去执行主从切换的功能

# 3 启动哨兵模式进行测试
- redis-sentinel /myredis/sentinel.conf

当port 6379重新上线后

存在问题

1.单节点的并发压力问题

2.单节点内存和磁盘物理上限

通过Springboot操作哨兵

#redis sentinel 配置
#master对应redis中sentinel.conf的master名字
spring.redis.sentinel.master=mymaster
#连接的不再是一个具体redis主机,书写的是多个哨兵节点
spring.redis.sentinel.nodes=39.99.236.216:26379

注意:如果出现了远程连接错误

解决方案:在哨兵的配置文件中加入

​ bind 0.0.0.0 //开启远程连接

posted @ 2020-09-10 17:42  longda666  阅读(91)  评论(0)    收藏  举报