redis 主从分布配置操作步骤详解

一、 准备工作
1、在 CentOS 上已经安装好了 redis,确认redis 功能正常。
2、 复制redis安装文件,分别为 redis6666,redis 7777

drwxr-xr-x. 2 root root 4096 12月 24 21:49 redis6666
drwxr-xr-x. 2 root root 4096 12月 24 21:49 redis7777
1
2
3、 redis6666 设置为 master,端口设置为6666

vim redis.conf ; port 6666 , requirepass 123
1
2
4、 redis7777 设置为 slave,端口设置为 7777, 操作同上

二、Master 和 Slave 配置
1、首先,修改 Master (redis7777)上的如下配置(在 redis.conf 修改配置):
a. 禁用 主服务器 snapshot

save 900 1 #禁用Snapshot

save 300 10

save 60 10000

1
2
3
b. 禁用 AOF

appendonly no #禁用AOF (该操作默认就是禁用的) 1 2 c. 设置 master 密码 (可选)

requirepass 123456
1
2
2、修改 Slave(redis6666)上的如下配置:

a. 启动 从服务器的 Snapshot

save 900 1 #启用Snapshot (默认开启)
save 300 10
save 60 10000
1
2
3
b. 启动 从服务器 AOF

appendonly yes #启用AOF(默认关闭)
appendfilename appendonly.aof #AOF文件的名称
1
2
c. 设置 slaveof

slaveof 192.168.3.16 6666
masterauth 123456 # 可选操作,若Master设置了密码,需要此配置; 对应 Master/redis.conf requirepass 属性。
1
2
三、启动 Master 和 Slave

a. 启动 master server:./redis6666/redis-server redis6666/redis.conf
b. 连接 master cli: ./redis6666/redis-cli -p 6666
c. 查看主服务器连接状态: info replication
1
2
3

d. 启动 slave server: ./redis7777/redis-server redis7777/redis.conf
e. 启动 slave cli : ./redis7777/redis-cli -p 7777
f. 查看 从服务器连接状态: info replication
1
2
3

四、 备份数据测试
1、 Master 插入一条数据:

127.0.0.1:6666> set name helloworld
OK
1
2
2、Slave 获取数据:

127.0.0.1:7777> get name
“helloworld”
1
2
操作到这里: redis 主从配置成功了。

五、容灾机制测试
1、Master 挂掉了:

127.0.0.1:6666> SHUTDOWN # 或者 直接 kill 掉 Master 进程
not connected>
1
2
2、 Slave 再次获取数据:

127.0.0.1:7777> get name
“helloworld”
1
2
3、数据恢复

将Slave上数据文件 dump.rdb 和 appendonly.aof 复制到 Master 目录上。

4、启动 Master ,分别在 Master 和 Slave 获取数据。

注意: 操作步骤3、4 不可互换,否则会造成数据丢失。 Master 启动后,Slave 会自动去同步数据。

5、 关闭 Slave 同步状态:SLAVEOF NO ONE
1
2
六、Slave 连接补上 Master 问题排除

1、 确认是否ip过滤?
Master操作: config get bind (” “表示任意ip访问
1
2
127.0.0.1:6666> config get bind
1) “bind”
2) “”
1
2
3
2、 确认Master 是否设置了密码?
Master 操作: config get requirepass (” “表示没密码)

127.0.0.1:6666> config get requirepass
1) “requirepass”
2) “”
1
2
3
若不为” “,则进行如下操作:
Slave 操作: config get masterauth

127.0.0.1:7777> config get masterauth
1) “masterauth”
2) “123456”
1
2
3
若和 Master/ config get requirepass 不一致,则进行修改:
config set masterauth “xx” # xx = config get requirepass

CONFIG REWRITE # 写入配置文件,避免下次设置

作者: 执着小钟

执着小钟

《redis 主从分布配置操作步骤详解》有一个想法

发表评论