Redis的主从架构
标签(空格分隔): Redis
上篇博文中我们简单介绍了下《Redis的单点安装》,该模式下,存在一些问题。这些问题也就是主从架构的好处。好处有以下两点
1、避免单点故障
2、面对现实生活中的读多写少的模式,实现读写分离
主从架构
架构图如图所示:
安装:
1、创建多实例
创建6379、6380、6381目录,分别将安装目录下的redis.conf拷贝到这三个目录下
结果:
2、修改配置文件redis.conf
例如:6380的配置文件
编辑6380/redis.conf下。将6379替换成6380即可
命令:
vim 6380/redis.conf
:%s/6379/6380/g ---将文件中6379字符串全替换成6380
同样,修改其他实例的配置文件
3、启动实例后检查
这样三个实例都创建好了,但是还没有做关联
4、设置主从
两个方法:
1、 在redis.conf中设置slaveof
a) slaveof
2、 使用redis-cli客户端连接到redis服务,执行slaveof命令
a) slaveof
第二种方式在重启后将失去主从复制关系
设置完成之后重启对应的从节点即可
ps -ef | grep redis
kill 进程号 —- 不要使用 -9 强制退出,因为怕redis还在处理业务
停止所有服务:
killall redis-server
5、查看主从状态
命令:
[root@node3 6380]# redis-cli
127.0.0.1:6379> replication info
role:角色
connected_slaves:从库数量
slave0:从库信息
6、安装完成,测试
提示:打开其他从库的客户端:redis-cli -p 6380
测试点:
1、在主库中设置后,从库查询有没有信息
2、在从库中写入数据
从从架构
架构图如图所示:
架构好处:
1、主库不做持久化操作,在从库中做持久化操作
2、如果所有的从库都主库中同步,主库压力太大。有些从库可以从空库中进行同步
安装:
修改redis.conf的slaveof 配置。将ip和port修改为某个从库即可。
测试:
从库只读配置:
默认情况下redis数据库充当slave角色时是只读的不能进行写操作。如果需要开启从库写功能。则需要修改配置文件redis.conf 中的slave-read-only no (默认为:yes)
但是如果在从库中写入的数据,是不会同步到主库中的