Redis主从复制
来源:互联网 发布:js舞蹈培训中心靠谱么 编辑:程序博客网 时间:2024/06/07 00:32
一般来说,要将Redis运用于工程项目中,只使用一台Redis是万万不能的,原因如下:
从结构上,单个Redis服务器会发生单点故障,并且一台服务器需要处理所有的请求负载,压力较大;
从容量上,单个Redis服务器内存容量有限,就算一台Redis服务器内容容量为256G,也不能将所有内容用作Redis存储内存,一般来说,单台Redis最大使用内存不应该超过20G。
本文先讨论第一点的解决方案:Redis主从复制,第二点可以使用Redis集群解决(请参考后面的文章)。
二. 典型应用场景:
电子商务网站上的商品,一般都是一次上传,无数次浏览的,说专业点也就是”多读少写”。
对于这种场景,我们可以使如下这种架构:
如图中所示,我们将一台Redis服务器作主库(Matser),其他三台作为从库(Slave),主库只负责写数据,每次有数据更新都将更新的数据同步到它所有的从库,而从库只负责读数据。这样一来,就有了两个好处:
1)读写分离,不仅可以提高服务器的负载能力,并且可以根据读请求的规模自由增加或者减少从库的数量,棒极了;
2)数据被复制成了了好几份,就算有一台机器出现故障,也可以使用其他机器的数据快速恢复。
三. redis 主从复制特点:
(1)、master可以拥有多个slave
(2)、多个slave可以连接同一个 master 外,还可以连接到其他 slave
(3)、主从复制不会阻塞 master,在同步数据时,master可以继续处理 client请求
(4)、提高系统的伸缩性
接下来我们来实现一主一从模式:
四. redis 主从复制过程
当配置好 slave 后,slave 与 master 建立连接,然后发送 sync 命令。无论是第一次连接还是重新连接,master 都会启动一个后台进程,将数据库快照保存到文件中,同时 master 主进程会开始收集新的写命令并缓存。后台进程完成写文件后, master就发送文件给slave, slave将文件保存到硬盘上,再加载到内存中,接着 master就会把缓存的命令转发给 slave,后续master 将收到的写命令发送给 slave。如果 master 同时收到多个slave 发来的同步连接命令,master 只会启动一个进程来写数据库镜像,然后发送给所有的 slave。
五.如何配置
配置slave服务器很简单,只需要在 slave的配置文件中加入如下配置
在没有重启slave到redis服务前,我们来看下slave里面有没有数据
发现啥数据都没有
重启slave到redis服务再观察:
输入info命令
127.0.0.1:6379> info
划线处明显标识角色是slave。
进入master服务器,
127.0.0.1:6379> info
划线处会标识角色是master
并且下面会列出所有的slave机器。
然后我们可以在slave机器上看到master数据库里面的信息,说明主从复制成功了
- 八.redis 主从复制
- Redis 主从复制
- 八.redis 主从复制
- 八.redis 主从复制
- Redis的主从复制
- Redis主从复制
- redis主从复制实验
- Redis主从复制配置
- redis主从复制配置
- Redis主从复制
- Redis主从复制
- redis之主从复制
- Redis主从复制
- Redis 主从复制
- 6.Redis主从复制
- redis主从复制
- redis主从复制过程
- redis系列-主从复制
- 配置geoDjango
- 2stackToQueue
- R语言:填色等值线图及其色标(color bar)设置
- 指针的总结好文转载
- yum常见命令
- Redis主从复制
- LeetCode基础-Stack
- django+celery+redis实现运行定时任务
- ansible——inventory文件
- return的应用
- 开源框架:JFinal框架
- 【Jquery系列】prop和attr区别
- -补齐函数求鸡的数量
- 三位整数各个位数之和