redis 主从模式

1、redis配置

本文使用docker启动的redis,启动脚本如下

  • restart.sh
# BEGIN ANSIBLE MANAGED BLOCK
#!/bin/bash
HOME="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
docker rm -f redis_4.0.10_6479;
docker run --name redis_4.0.10_6479 \
  --restart=always \
  -v $HOME/data:/data \
  -v $HOME/redis:/etc/redis \
  -p 6479:6479 \
  -d redis:4.0.10 \
  redis-server /etc/redis/redis.conf --appendonly yes  --requirepass "123456"
# END ANSIBLE MANAGED BLOCK

修改脚本启动三个redis,分别为redis_6479、redis_6579、redis_6679;暂定redis_6479为主节点,redis_6579、redis_6679为从节点

2、修改从节点(redis_6579、redis_6679)的配置文件
# 修改slaveof配置
slaveof    // 例 slaveof 192.168.8.124 6479

如果主节点需要访问密码,修改masterauth参数

# 添加密码
masterauth   // 例 masterauth 123456

修改从节点优先级

# 节点优先级,越小说明优先级越高,主节点可不设置
slave-priority 90  // default 为 100
  • 重启从节点,另一个从节点配置类似
    docker restart redis_6579

    5.png

  • 出现上述信息,标识从节点已经配置成功

  • 此时,主节点可以读写数据,从节点只能读取数据,可以在主节点 set数据,在从节点读取数据,发现数据已经同步

  • 完成以上步骤后,一主一从的redis高可用架构就部署好了,但是当主节点挂掉以后,从节点提升为主节点这动作不是自动完成的,需要我们手动去将其中一个从节点提升为主节点,同时还需要修改调用方的主节点地址,这个太麻烦了,所以我们需要sentinel集群,它可以在主节点挂掉以后自动将其中一个从节点提升为主节点,当主节点恢复以后,自动将老的主节点设置为新主节点的从节点,同时主节点地址对调用方透明。

你可能感兴趣的:(redis 主从模式)