redis主从复制+2种原理图+主从复制通信过程+主从复制案例+设置主从复制通信密码

来源:互联网 发布:淘宝订单号查询商品 编辑:程序博客网 时间:2024/05/22 13:15

redis主从复制
2种原理图
这里写图片描述

主从复制通信过程
这里写图片描述

集群好处

主从备份,防止主机宕机读写分离,分担master的任务

主从复制案例
1个主机7369端口,并行的2个从机7380,7381端口
配置前准备
2 3个redis.conf配置文件

[root@fei redis]# lsback  bin  redis6380.conf  redis6381.conf  redis.conf

1配置从服务器6380
vim redis6380.conf

设置rdbsave 900 1save 300 10save 60 100stop-writes-on-bgsave-error yesrdbcompression yesrdbchecksum yesdbfilename dump6380.rdbdir /usr/local/src/redis/back取消aof,因为主服务器已经设置#端口port 6380#pid文件pidfile /usr/local/src/redis/pid/redis_6380.pid#dump文件(由6380服务器来进行rdb工作,主服务器不进行rdb工作)dbfilename dump6380.rdb#配置主服务的地址 slaveof 127.0.0.1 6379 #6380端口只读 slave-read-only yes

2配置从服务器6381
vim redis6381.conf

 取消rdb 取消AOP port 6381 pidfile /usr/local/src/redis/pid/redis_6381.pid dbfilename dump6381.rdb slaveof  127.0.0.1 6379 slave-read-only yes

3配置主服务器6379
vim redis.conf

取消rdb--因为从服务器已经配置设置aof--可取消可不取消,因为从服务器已经配置,这里设置# 是否打开 aof日志功能appendonly yes # aof文件存放位置(默认与rdb在一个路径下)appendfilename appendonly.aof # 每秒写1次appendfsync everysec # 正在导出rdb快照的过程中,不要停止同步aofno-appendfsync-on-rewrite yes#aof文件大小比起上次重写时的大小,增长率100%时,重写auto-aof-rewrite-percentage 100 #aof文件,至少超过64M时,重写auto-aof-rewrite-min-size 8mb#端口port 6379#pid文件pidfile /usr/local/src/redis/pid/redis_6379.pid

4 打开所有的服务器

[root@fei redis]# ./bin/redis-server ./redis.conf [root@fei redis]# ./bin/redis-server ./redis6380.conf [root@fei redis]# ./bin/redis-server ./redis6381.conf 

5 测试
主服务器上设置

[root@fei redis]# ./bin/redis-cli127.0.0.1:6379> set num 1OK127.0.0.1:6379> keys *1) "num"127.0.0.1:6379> set str 123OK127.0.0.1:6379> 

从服务检验

[root@fei redis]# ./bin/redis-cli -p 6380127.0.0.1:6380> get num"1"127.0.0.1:6380> get str"123"[root@fei redis]# ./bin/redis-cli -p 6381127.0.0.1:6381> get num"1"127.0.0.1:6381> get str"123"

设置主从复制通信密码
1主机设置密码,如果从服务器不输入密码,无法获取主服务的数据
vim redis.conf

 requirepass 123

2开启所有的服务器

3主服务器测试:(连接的时候需要密码)

127.0.0.1:6379> flushdb(error) NOAUTH Authentication required.127.0.0.1:6379> auth 123OK127.0.0.1:6379> flushdbOK

4从服务器测试

--主服务器设置数据127.0.0.1:6379> set num 1OK--从服务器没有获取到数据(因为从服务器配置文件没有设置主服务器的密码)[root@fei redis]# ./bin/redis-cli -p 6380127.0.0.1:6380> keys *(empty list or set)

5从服务配置主服务的密码
2个从服务器都要配置

masterauth 123

6测试

--主服务器设置数据127.0.0.1:6379> set num 1OK--从服务有数据[root@fei redis]# ./bin/redis-cli -p 6380127.0.0.1:6380> keys *1) "num"
原创粉丝点击