配置Redis主从

来源:互联网 发布:泰牛程序员php视频 编辑:程序博客网 时间:2024/06/10 06:40

Redis主从工作过程:

1、slave向master发送sync命令。

2、master开启子进程来讲dataset写入rdb文件,同时将子进程完成之前接收到的写命令缓存起来。

3、子进程写完,父进程得知,开始将RDB文件发送给slave。master发送完RDB文件,将缓存的命令也发给slave

master增量的把写命令发给slave。

  

值得注意的是,当slave跟master的连接断开时,slave可以自动的重新连接master,在redis2.8版本之前,每当slave进程挂掉重新连接master的时候都会开始新的一轮全量复制。如果master同时接收到多个slave的同步请求,则master只需要备份一次RDB文件。

 

一.准备好2台机器

172.16.111.137 redis-node1 #主

172.16.111.147 redis-node2 #从

  

二、安装redis,配置好基本配置

yum install redis

vim /etc/redis.conf

daemonize yes

bind 0.0.0.0 #改为各个节点的IP

systemctl start redis

  

三.依照上面设定的从主机,在从主机配置文件中开启从配置:

### REPLICATION ###

slaveof 172.17.111.137 6379 #主节点地址,<host> <port>

#masterauth <master-password> #如果设置了访问认证就需要设定此项。

slave-server-stale-data yes #当slave与master连接断开或者slave正处于同步状态时,如果slave收到请求允许应,no表示返回错误。

slave-read-only yes #slave节点是否为只读。

slave-priority 100 #设定此节点的优先级,是否优先被同步。

  

四、配置sentinel

只需在sentinel节点的配置文件中修改以下配置即可:

vim /etc/redis-sentinel.conf

port 26379

#sentinel announce-ip 1.2.3.4 #默认监听在0.0.0.0 所以此处可以注释。

  

五:测试

redis-cli -h 172.16.111.137 info Replication 查看是否成为slave

# Replication

role:master #172.17.111.137为master服务器

connected_slaves:1

slave0:ip=172.16.111.147,port=6379,state=online,offset=407,lag=1#172.17.111.147为slave服务器

master_repl_offset:407

repl_backlog_active:1

repl_backlog_size:1048576

repl_backlog_first_byte_offset:2

repl_backlog_histlen:406