Redis的主从复制
来源:互联网 发布:盗版软件 知乎 编辑:程序博客网 时间:2024/05/21 22:34
什么是主从复制
持久化保证了即使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.129192.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,从而保证数据的一致;
阅读全文
0 0
- Redis的主从复制
- Redis的主从复制
- redis的主从复制
- Redis的主从复制
- Redis的主从复制
- Redis的主从复制
- Redis的主从复制
- Redis的主从复制
- redis的主从复制
- Redis的主从复制
- redis的主从复制配置
- redis的主从复制配置
- redis的主从复制机制
- 验证redis的主从复制
- Redis的主从复制测试
- redis的主从复制配置
- redis主从复制(详细的)
- redis的主从复制配置
- OS安全机制之可追究机制
- [SHOI2012]魔法树 链剖
- ⚔疯狂输出 ⚔ 集合 和数组.
- 获取jar包中的class类
- javascript中对json数据的处理
- Redis的主从复制
- 解决spark中遇到的数据倾斜问题
- 大数据(三十八)机器学习【机器学习语言---R语言小试牛刀】
- Java 常用工具类 Collections 源码分析
- Android Studio开发环境配置过程中的几个问题
- Several ports (8005, 8080, 8009) required by Tomcat v7.0 Server at localhost are already in use.
- LeetCode第1题
- Java中的多线程你只要看这一篇就够了(多线程内容概述)
- LeetCode 109. Convert Sorted List to Binary Search Tree