redis主从复制配置(1)

我们来配置一个一主两从的服务,根据前面写的已经配置好的redis基础上进行主从配置

一:进入redis的配置目录

cd /usr/local/redis

创建下面3个目录,命令为:
make -p /usr/local/redis/master /usr/local/redis/slave1 /usr/local/redis/slave2

复制 redis.conf 到这个3个目录

cp /usr/local/redis/redis.conf  /usr/local/redis/master/redis.conf

依次复制redis.conf到另外2个从配置目录

二:配置项

2.1)修改端口为master->1000, slave1->2000, slave2->3000

vi /usr/local/redis/master/redis.conf

redis主从复制配置(1)

相应的修改其它2个从配置文件

2.2) 修改pidfile和logfile
在redis.conf中找到pidfile和logfile
pidfile /usr/local/redis/master/redis.pid
logfile /usr/local/redis/master/redis.log

redis主从复制配置(1)

redis主从复制配置(1)

相应的修改其它2个从配置文件slave1,slave2

2.3) 把启动方式设置为后台常驻进程方式
daemonize yes

redis主从复制配置(1)

修改主从所有的配置文件

2.4) 当然我们还可以设置外网访问的ip,(下面的实践没有设置,简单点)
默认就是绑定到了127.0.0.1

redis主从复制配置(1)

三:启动3个redis

/usr/local/redis/bin/redis-server /usr/local/redis/master/redis.conf
/usr/local/redis/bin/redis-server /usr/local/redis/slave1/redis.conf
/usr/local/redis/bin/redis-server /usr/local/redis/slave2/redis.conf

四:客户端连接redis

4.1)连接slave1:
./bin/redis-cli -h 127.0.0.1 -p 2000

然后输入下面的命令查看服务器信息:

127.0.0.1:> info Replication
# Replication
role:master
connected_slaves:
master_repl_offset:
repl_backlog_active:
repl_backlog_size:
repl_backlog_first_byte_offset:
repl_backlog_histlen:

# Replication
role:master

查看其它2台服务器得到的都是同样的信息

五:那么下面开始主从复制的配置

修改2台从服务器的配置文件
vi /usr/local/redis/slave1/redis.conf
设置为 slaveof 127.0.0.1 1000
如下图:

redis主从复制配置(1)

2台从服务器配置完成后,重启redis,查看redis是否重启成功
ps -ef|grep redis

主服务器不需要修改配置

六:验证

6.1)登录进从服务器slave1

[root@localhost redis]# ./bin/redis-cli -h 127.0.0.1 -p
127.0.0.1:> info replacation
# Replication
role:slave
master_host:127.0.0.1
master_port:
master_link_status:up
master_last_io_seconds_ago:
master_sync_in_progress:
slave_repl_offset:
slave_priority:
slave_read_only:
connected_slaves:
master_repl_offset:
repl_backlog_active:
repl_backlog_size:
repl_backlog_first_byte_offset:
repl_backlog_histlen:

6.2)登录进主服务器master:

[root@localhost redis]# ./bin/redis-cli -h 127.0.0.1 -p
127.0.0.1:> info replication
# Replication
role:master
connected_slaves:
slave0:ip=127.0.0.1,port=,state=online,offset=,lag=
slave1:ip=127.0.0.1,port=,state=online,offset=,lag=
master_repl_offset:
repl_backlog_active:
repl_backlog_size:
repl_backlog_first_byte_offset:
repl_backlog_histlen:

6.3)打开3个客户端窗口,分别连上主服务器和2个从服务器
master服务器用set命令设置一个值:
[root@localhost redis]# ./bin/redis-cli -h 127.0.0.1 -p 1000
127.0.0.1:1000> set test testslave
OK

查看2台从服务器是否获取到正确的值:
[root@localhost redis]# ./bin/redis-cli -h 127.0.0.1 -p 2000
127.0.0.1:2000> get test
"testslave"

[root@localhost redis]# ./bin/redis-cli -h 127.0.0.1 -p 3000
127.0.0.1:3000> get test
"testslave"

全部得到正确的值,说明配置就成功了

参考:

http://doc.redisfans.com/topic/replication.html

上一篇:Cordova打包vue项目(Android)


下一篇:Repeater用法