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