Redis(二)主从复制和哨兵模式配置实例

一、主从复制配置

1.Redis服务器准备

服务器角色 服务器ip 服务器端口
master 47.106.130.223 6379
slave 120.77.222.219 6379
slave 120.24.60.104 6379

2.安装redis

redis安装配置点击这里,在三台服务器上安装好redis并设置密码。

3.配置master

在第二步已经实现了redis的一些基本配置,如所有进程守护,密码等。配置master我们还需修改redis.conf如下。

#配置redisPID
pidfile /var/run/redis_6379.pid
#配置日志路径
logfile "/data/logs/redis.master.log"

在这里插入图片描述

4.配置slave

配置从库对redis.conf做如下修改

pidfile /var/run/redis6379.pid
logfile "/data/logs/redis.slave.log"
#配置主库的ip和端口
slaveof 47.106.130.223 6379
#由于主库设置了密码所以从库也需要将主库的密码配置配置文件里面
masterauth zzx123456
#开启从库只读
slave-serve-stale-data yes

在这里插入图片描述
在这里插入图片描述
5.重启测试
查看主库信息
在这里插入图片描述
查看从库信息
在这里插入图片描述
在主库120.77.222.219 set
在这里插入图片描述
然后在任意从库get
在这里插入图片描述
最后我们在从库set看看,报错了!(因为从库开启了只读模式)
在这里插入图片描述

二、哨兵模式配置

1.新增服务器,配置哨兵:

服务器角色 服务器ip 服务器端口
哨兵 47.100.192.69 8379

修改./redis-4.0.8/sentinel.conf文件如下

#端口设置为8379
port 8379
#开启线程守护
daemonize yes
#配置主服务ip+端口+选举投票数。1表示有一个sentinel同意即可升级为master
sentinel monitor mymaster 120.77.222.219 6379 1
#主库密码
sentinel auth-pass mymaster zzx123456

在这里插入图片描述
启动哨兵:

/usr/local/redis/redis-4.0.8/src/redis-sentinel /usr/local/redis/redis-4.0.8/sentinel.conf

2.配置Springboot项目

配置redis和哨兵,修改application如下

spring.redis.host=47.106.130.223
spring.redis.port=6379
spring.redis.password=zzx123456
spring.redis.database=3

#哨兵的配置列表
spring.redis.sentinel.master=mymaster
#配置多个哨兵
spring.redis.sentinel.nodes=47.100.192.69:8379120.24.60.104:8379

测试类如下

  @GetMapping("/save")
    public void add(){
        redisTemplate.delete("zzx");
        redisTemplate.opsForValue().set("zzx",321);
        System.out.println("添加成功");
    }

浏览器上发送请求得到结果如下
在这里插入图片描述

3.主库宕机测试

在服务器上我们kill掉redis进程
在这里插入图片描述
浏览器上继续刚才的请求我们看日志会发现连接自动切换了,120.77.222.219被选举成为了master。
在这里插入图片描述
在这里插入图片描述

发布了55 篇原创文章 · 获赞 23 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/Z_Vivian/article/details/102621090