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

**

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

**

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

drwxr-xr-x. 2 root root 4096 1224 21:49 redis6666
drwxr-xr-x. 2 root root 4096 1224 21:49 redis7777

3、 redis6666 设置为 master,端口设置为6666

vim redis.conf ; port 6666 , requirepass 123

4、 redis7777 设置为 slave,端口设置为 7777, 操作同上

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

#save 900 1 #禁用Snapshot
#save 300 10
#save 60 10000

b. 禁用 AOF

`appendonly no #禁用AOF (该操作默认就是禁用的)

`c. 设置 master 密码 (可选)

requirepass  123456

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

a. 启动 从服务器的 Snapshot

save 900 1 #启用Snapshot (默认开启)
save 300 10
save 60 10000

b. 启动 从服务器 AOF

appendonly yes  #启用AOF(默认关闭)
appendfilename  appendonly.aof  #AOF文件的名称

c. 设置 slaveof

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

三、启动 Master 和 Slave

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

这里写图片描述

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

这里写图片描述

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

127.0.0.1:6666> set name helloworld
OK

2、Slave 获取数据:

127.0.0.1:7777> get name
"helloworld"

操作到这里: redis 主从配置成功了。

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

127.0.0.1:6666> SHUTDOWN  # 或者 直接 kill 掉 Master 进程
not connected> 

2、 Slave 再次获取数据:

127.0.0.1:7777> get name
"helloworld"

3、数据恢复

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

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

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

5、 关闭 Slave 同步状态:SLAVEOF NO ONE

六、Slave 连接补上 Master 问题排除

1、 确认是否ip过滤?
Master操作:  config get bind (" "表示[任意ip访问](http://blog.csdn.net/haha_sir/article/details/78081100))
127.0.0.1:6666> config get bind
    1) "bind"
    2) ""

2、 确认Master 是否设置了密码?
Master 操作: config get requirepass (” “表示没密码)

127.0.0.1:6666> config get requirepass
1) "requirepass"
2) ""

若不为” “,则进行如下操作:
Slave 操作: config get masterauth

127.0.0.1:7777> config get masterauth
1) "masterauth"
2) "123456"

若和 Master/ config get requirepass 不一致,则进行修改:
config set masterauth “xx” # xx = config get requirepass
CONFIG REWRITE # 写入配置文件,避免下次设置

若您有更好的见解或遇到了问题,欢迎私信和交流,谢谢。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值