Linux下配置Redis的主从复制和主从切换

一、为了实现高可用,一般生产环境使用的Redis都会做的主从复制和主从切换,而这些只需要做少许的配置即可完成。

二、为了便于展示,在一台机器上完成主从复制和主从切换,所以就需要修改端口,多运行几个实例

  1、安装redis参考 ,即安装在:/usr/local/redis下,源码在:/usr/local/src/redis-4.0.9下

    Redis在linux下安装和测试

  2、复制主从配置文件和哨兵的配置文件

# 主机节点配置
cp /usr/local/src/redis-4.0.9/redis.conf /usr/local/redis/redis-master.conf
# 从节点配置
cp /usr/local/src/redis-4.0.9/redis.conf /usr/local/redis/redis-slave.conf
# 三个哨兵节点配置
cp /usr/local/src/redis-4.0.9/sentinel.conf /usr/local/redis/sentinel-1.conf
cp /usr/local/src/redis-4.0.9/sentinel.conf /usr/local/redis/sentinel-2.conf
cp /usr/local/src/redis-4.0.9/sentinel.conf /usr/local/redis/sentinel-3.conf

  3、修改配置文件

    a、修改主节点配置 redis-master.conf

# 修改可以远程访问
bind 0.0.0.0
# 修改成保护模式可以不使用密码
protected-mode no
# 修改成后台启动
daemonize yes
# 修改数据存储为绝对路径
dir /usr/local/redis/6379/

    b、修改从节点配置 redis-slave.conf

# 修改端口,在用一个机器上6379已经被主节点占用
port 6479
# 修改可以远程访问
bind 0.0.0.0
# 修改成保护模式可以不使用密码
protected-mode no
# 修改成后台启动
daemonize yes
# 修改数据存储为绝对路径
dir /usr/local/redis/6479/
# 将文件名改成redis要启动的端口,如果安装多个redis
pidfile /var/run/redis_6479.pid
# 配置主节点ip和端口
slaveof 127.0.0.1 6379

    c、修改哨兵配置  sentinel-1.conf

# 修改成保护模式可以不使用密码
protected-mode no
# 修改成后台启动
daemonize yes
# 哨兵监控的master,集群名为mymaster,主节点的ip和端口,需要断定主节点死亡的哨兵数 
sentinel monitor mymaster
127.0.0.1 6379 2

# master或slave多长时间(默认30秒)不能使用后标记为s_down状态。
sentinel down
-after-milliseconds mymaster 5000

#若sentinel在该配置值内未能完成failover操作(即故障时master
/slave自动切换),则认为本次failover失败。
sentinel failover
-timeout mymaster 18000

#设置master和slaves验证密码,没有密码不需要
# sentinel auth
-pass mymaster 密码

# 指定了在执行故障转移时, 最多可以有多少个从服务器同时对新的主服务器进行同步
sentinel parallel
-syncs mymaster 1

    d、修改哨兵配置  sentinel-2.conf,和上一步配置一样,因为在同一台机器,需要修改下端口

# 修改端口,在用一个机器上6379已经被主节点占用
port 26479
# 修改成后台启动
daemonize yes
# 修改成保护模式可以不使用密码
protected-mode no

    e、修改哨兵配置  sentinel-3.conf,和上一步配置一样,因为在同一台机器,需要修改下端口

# 修改端口,在用一个机器上6379已经被主节点占用
port 26579
# 修改成后台启动
daemonize yes
# 修改成保护模式可以不使用密码
protected-mode no

  4、启动主从,启动哨兵

# 创建redis数据存储目录
mkdir /usr/local/redis/6379 /usr/local/redis/6479
# 启动主从
/usr/local/redis/bin/redis-server /usr/local/redis/redis-master.conf
/usr/local/redis/bin/redis-server /usr/local/redis/redis-slave.conf
# 启动哨兵
/usr/local/redis/bin/redis-sentinel /usr/local/redis/sentinel-1.conf
/usr/local/redis/bin/redis-sentinel /usr/local/redis/sentinel-2.conf
/usr/local/redis/bin/redis-sentinel /usr/local/redis/sentinel-3.conf

  5、查看启动状态

#  通过哨兵查看集群的信息
/usr/local/redis/bin/redis-cli -p 26379 info

  

  备注:redis哨兵集群可以监控多个主从,只需要保证集群名唯一即可。

  可以登录哨兵客户端使用,需要依次在集群中所有的sentinel节点执行以下命令,不然只有输入命令哨兵才会监听:

# 登录客户端
/usr/local/redis/bin/redis-cli -p 26379
# 在客户端使用命令监听主节点
sentinel monitor md-dev 127.0.0.1 6379 2
# 删除
sentinel remove md-dev

yexiangyang

moyyexy@gmail.com


原文地址:https://www.cnblogs.com/moy25/p/9478700.html