要开启主从架构,master一定要开启持久化机制(如果不开启,一旦 slave数据被清空,就是灾难性的)
一般 master下有一个或者两个 slave ,但是slave下也可以有slave:
现在从一台虚拟机上克隆两个,改变其静态ip地址:06,07,08这三个。
以06作为master ,07 和08作为 slave 。
使用命令:info replication 来查看信息:(三台都是这,因为:还没有配置主从)
配置slave:
1.先进入 /usr/local/redis/redis.conf 配置文件:
vi /usr/local/redis/redis.conf
2.搜索replication
3.在其下方:默认的是被注释了,replicaof 是自己又复制了一份,
这是确定其master的port和ip【必填的】
4.填写redis master的密码:
5.设置为只读,不能写(默认的):这样就做到了读写分离
6.保存退出,进入working【自己设置的redis工作区间】删除 dump.rdb 和appendonly.aof【两种持久化方式的文件,没有就算】
rm dump.rdb
7.重启:
先关闭: /etc/init.d/redis_init_script stop
后重启:/etc/init.d/redis_init_script start
8.然后你再进入 working查看,删除的文件,又有了,是从master 同步的:
进入redis-cli查看 keys * ,会发现master的信息 同步过来了
9.再次查看信息:身份已经由 master【未配置前】 变成 slave 了,并且 master 还是06
10.再让我们看看master06的机子的信息:
其中的slave只有一个,就是刚刚配置的07
11.再次重复上面步骤来配置 08这台机子:
查看 08 的信息
12.再次查看 06的信息:
第一次 slave 只有07一个,现在已经有两个了
主从模式已经配置成功了。
做一下测试:
测试1:
在06上增加一个 ,看看07和08 能否接收到:
这是在06上
这是07上的:
这是08的:
测试2:
关闭08 ,查看06的信息:然后在06设置新的key,重新开启08,看其能否接受到06的数据
1.关闭前的06信息:(slave 有两个)
2.08关闭后,再次查看06信息:
06信息【重启redis-cli】
3: 06设置新的数据:
4.开启08,查看数据:【同步了06的新数据】
测试3:
关闭06,查看07 和08 的状态,看是 master 还是slave:
1.关闭06
2.查看07 和08信息;
还是 slave,master还是06 ,只是status变成了 down
3.再次开启06:
06仍然是 master,slave仍然有两个:07 和08
4.再次查看07 和08信息:
其他的都没有变,只是status 由 down 变成了 up