Redis的主从配置

1. 环境

Redis Version:current stable
OS:CentOS 7

2. 目标

在此,我们启动两个redis进程,一个作为master,一个作为slave,分别运行在6379和6380端口

Master相关配置如下

port 6379
配置文件 /etc/redis/redis_6379.conf
启动脚本 /etc/init.d/redis_6379

Slave相关配置如下

port 6380
配置文件 /etc/redis/redis_6380.conf
启动脚本 /etc/init.d/redis_6380

3. 步骤

/etc/redis/redis_6380.conf文件中增加下面几行

# slaveof  
slaveof localhost 6379
# setting a slave to authenicate to a master
masterauth mypass

为master增加密码,在/etc/redis/redis/redis_6379.conf中加入下面一行

requirepass mypass

重启两个Redis实例

/etc/init.d/redis_6379 stop/start
/etc/init.d/redis_6380 stop/start

还可以不重启实例来修改权限和主从信息,通过Redis命令实现

redis-cli -p 6379 config set requirepass mypass
redis-cli -p 6380 config set masterauth mypass
redis-cli -p 6380 SLAVEOF localhost 6379

查看replication信息

redis-cli -p 6379 -a mypass info replication

输出如下

# Replication
role:master
connected_slaves:1
slave0:ip=127.0.0.1,port=6380,state=online,offset=3963,lag=1
master_repl_offset:3963
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:2
repl_backlog_histlen:3962

输出说明6379是master

redis-cli -p 6380 info replication

输出如下

# Replication
role:slave
master_host:localhost
master_port:6379
master_link_status:up
master_last_io_seconds_ago:6
master_sync_in_progress:0
slave_repl_offset:3977
slave_priority:100
slave_read_only:1
connected_slaves:0
master_repl_offset:0
repl_backlog_active:0
repl_backlog_size:1048576
repl_backlog_first_byte_offset:0
repl_backlog_histlen:0

输出说明6380是6379的slave

可以通过下面的命令取消6380的slave信息

redis-cli -p 6380 slaveof no one
OK

查看一下replication信息

redis-cli -p 6380 info replication
# Replication
role:master
connected_slaves:0
master_repl_offset:4215
repl_backlog_active:0
repl_backlog_size:1048576
repl_backlog_first_byte_offset:0
repl_backlog_histlen:0

你可能感兴趣的:(Redis的主从配置)