Redis的主从复制
2017-12-18 21:20
218 查看
什么是主从复制
持久化保证了即使redis服务重启也会丢失数据,因为redis服务重启后会将硬盘上持久化的数据恢复到内存中,但是当redis服务器的硬盘损坏了可能会导致数据丢失,如果通过redis的主从复制机制就可以避免这种单点故障,如下图:主redis中的数据有两个副本(replication)即从redis1和从redis2,即使一台redis服务器宕机其它两台redis服务也可以继续提供服务。
主redis中的数据和从redis上的数据保持实时同步,当主redis写入数据时通过主从复制机制会复制到两个从redis服务上。
只有一个主redis,可以有多个从redis。
主从复制不会阻塞master,在同步数据时,master 可以继续处理client 请求 一个redis可以即是主又是从,如下图:
主从配置
下边提到的复制redis还是依照Redis安装的环境进行操作。主Redis配置
无需特殊配置从Redis配置
1.创建一个redis-jiqun文件夹mkdir /usr/local/redis-jiqun
2.将redis复制到redis-jiqun中
cp -r /usr/local/redis /usr/local/redis-jiqun/redis01 cp -r /usr/local/redis /usr/local/redis-jiqun/redis02 cp -r /usr/local/redis /usr/local/redis-jiqun/redis03
3.修改每一个redis的bin目录下的redis.conf,为了我们在客户端访问,我们将bind设置为0.0.0.0
bind 192.168.251.129 #修改为自己对应的服务器ip port 6380 #依次修改为 6380 6381 6382端口 pidfile /var/run/redis_6380.pid #依次修改为其对应的端口号
4. 设置主从
修改redis.conf文件,这里将6380端口设置为master所以不需要做任何操作,只需要修改6380端口和6381端口就可以了
#在redis.conf配置 slaveof 192.168.1.103 6380
5.启动3个redis节点
cd /usr/local/redis-jiqun/redis01/bin &&./redis-server redis.conf cd /usr/local/redis-jiqun/redis02/bin &&./redis-server redis.conf cd /usr/local/redis-jiqun/redis03/bin &&./redis-server redis.conf
6. 连接redis的master节点,查看主从状态
# ./redis-cli -p 6380 -h 192.168.251.129 192.168.251.129:6380> INFO replication
7.测试主备是否好用
Redis的读写分离
根据上图可以看出slave只有读的权限,不能写,如果想要slave开启写的操作需要修改redis.conf文件slave-read-only yes #修改为yes 表示slave可写
主从配置过程
1)、当从库和主库建立MS关系后,会向主数据库发送SYNC命令;2)、主库接收到SYNC命令后会开始在后台保存快照(RDB持久化过程),并将期间接收到的写命令缓存起来;
3)、当快照完成后,主Redis会将快照文件和所有缓存的写命令发送给从Redis;
4)、从Redis接收到后,会载入快照文件并且执行收到的缓存的命令;
5)、之后,主Redis每当接收到写命令时就会将命令发送从Redis,从而保证数据的一致;
相关文章推荐
- Redis笔记(二)主从复制
- redis主从复制
- Redis主从复制读写分离搭建
- Redis的主从复制
- noSQL-redis学习(六) -- redis主从复制(Master/Slave)
- 11. redis 高级:安全&&主从复制
- linux下redis主从复制与读写分离
- 使用Sentinel机制实现Redis高可用主从复制
- C#Redis 主从复制
- redis哨兵模式和主从复制
- 构建高性能数据库缓存之redis主从复制
- 跟我学Redis(15)—Redis主从复制
- Redis主从复制问题和扩容问题的解决思路
- Redis源码分析:主从复制
- Redis之主从复制
- redis复习(二):高级命令,主从复制,哨兵模式
- redis单机配置主从复制星形结构
- 高性能网站架构设计之缓存篇(4)- Redis 主从复制
- redis的主从复制配置
- 基于Redis主从复制读写分离架构的Session共享