杨叔叔 发表于 2018-11-3 08:24:25

实现Redis的主从复制

  实验环境:关闭防火墙以及selinux,各节点间时间进行同步,能够互相通信
  Master172.10.251.224
  Slave1172.10.251.225
  Slave2172.10.251.226
  Slave3172.10.251.227
  四台机器都安装redis   yun install -y redis
  步骤:
  Master:
  1.vim /etc/redis.conf
  bind 172.10.251.224#自己主机的IP
  protected-mode yes#开启保护模式
  daemonize yes#启动守护进程
  appendonly yes#启动aof模式(根据实际情况判断是否开启)
  2.systemctl start redis
  Slave1:
  1.vim /etc/redis.conf
  bind 172.10.251.225
  slaveof 172.10.251.224 6379   #master的IP地址和监听的端口
  slave-server-stale-data yes    #当slave与master连接断开或者slave正处于同步状态时,如果slave收到请求允许响应,no表示返回错误。
  slave-read-only yes    #slave节点是否为只读。
  slave-priority 100    #设定此节点的优先级,是否优先被同步。
  2.systemctl start redis
  Slave2:
  1.vim /etc/redis.conf
  bind 172.10.251.226
  slaveof 172.10.251.224 6379
  slave-server-stale-data yes
  slave-read-only yes
  slave-priority 100
  2.systemctl start redis
  Slave3:
  1.vim /etc/redis.conf
  bind 172.10.251.227
  slaveof 172.10.251.224 6379
  slave-server-stale-data yes
  slave-read-only yes
  slave-priority 100
  2.systemctl start redis
  redis-cli -h 172.10.251.224 info #master上执行命令,查看Replication这一项:
  #Replication
  role:master    #角色master
  connected_slaves:3   #3台从节点
  slave0:ip=172.10.251.225,port=6379,state=online,offset=897,lag=0
  slave1:ip=172.10.251.226,port=6379,state=online,offset=897,lag=0
  slave2:ip=172.10.251.227,port=6379,state=online,offset=897,lag=0
  redis-cli -h 172.10.251.225 info #也可以在slave1上执行命令,查看Replication这一项
  #Replication
  role:slave   #角色slave
  master_host:172.10.251.224   #主节点地址为172.10.251.224
  测试:
  master上执行:
  # redis-cli -h 172.10.251.224
  172.10.251.224:6379>set master mage   #设置缓存值
  172.10.251.224:6379> get master    #查看缓存值
  "mage"
  172.10.251.224:6379> keys *    #查看当前db库中所有的缓存key
  1) "master"
  slave上执行:(以slave1为例)
  # redis-cli -h 172.10.251.225
  172.10.251.225:6379> keys *
  1) "master"
  172.10.251.225:6379> get master
  "mage"
  可以看出,主从已经实现了同步,就是这么easy,实验完成了。

页: [1]
查看完整版本: 实现Redis的主从复制