目录

  • 一、主从复制配置
  • 1.Redis服务器准备
  • 2.安装redis
  • 3.配置master
  • 4.配置slave
  • 二、哨兵模式配置
  • 1.新增服务器,配置哨兵:
  • 2.配置Springboot项目
  • 3.主库宕机测试


一、主从复制配置

1.Redis服务器准备

服务器角色

服务器ip

服务器端口

master

47.106.130.223

6379

slave

120.77.222.219

6379

slave

120.24.60.104

6379

2.安装redis

在三台服务器上安装好redis并设置密码。

3.配置master

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

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

redis主从切换命令 redis主从模式配置_redis主从切换命令

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

redis主从切换命令 redis主从模式配置_redis主从切换命令_02


redis主从切换命令 redis主从模式配置_spring_03


5.重启测试

查看主库信息

redis主从切换命令 redis主从模式配置_spring_04


查看从库信息

redis主从切换命令 redis主从模式配置_redis_05


在主库120.77.222.219 set

redis主从切换命令 redis主从模式配置_redis_06


然后在任意从库get

redis主从切换命令 redis主从模式配置_服务器_07


最后我们在从库set看看,报错了!(因为从库开启了只读模式)

redis主从切换命令 redis主从模式配置_redis主从切换命令_08

二、哨兵模式配置

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

redis主从切换命令 redis主从模式配置_redis主从切换命令_09


启动哨兵:

/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:8379,120.24.60.104:8379

测试类如下

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

浏览器上发送请求得到结果如下

redis主从切换命令 redis主从模式配置_redis_10

3.主库宕机测试

在服务器上我们kill掉redis进程

redis主从切换命令 redis主从模式配置_服务器_11


浏览器上继续刚才的请求我们看日志会发现连接自动切换了,120.77.222.219被选举成为了master。

redis主从切换命令 redis主从模式配置_redis_12


redis主从切换命令 redis主从模式配置_redis_13