设为首页 收藏本站
查看: 1591|回复: 3

[经验分享] Redis复制

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2014-1-2 09:01:48 | 显示全部楼层 |阅读模式
Redis复制
为了避免单点故障,我们希望将数据库的数据实时复制到其他服务器上。那么,即使一台服务器出了问题,其他服务器仍然可以提供服务。
主数据库(master),从数据库(slave)
master是读写的,发生写行为就传给slave。slave是只读的,只接收来自主库同步的数据(可以配置成可读写)。
主库可以有多个从库,从库只能有一个主库,从库下面还能有从库。
从库可以激活成主库。
一个软件可以起多个实例,同时起主库与从库也是可以的。
实验:
下面我们模拟一个主机上一套软件起主库,从库。
1.启动从库实例。
使用自定义port覆盖参数文件中的port,并且设置认证密码参数,masterauth参数的作用是使实例如果成为从库时,会用这个密码认证来连到主库获取数据。
nohup redis-server /home/ldh/redis/redis-2.8.3/redis.conf --port 6390 --masterauth pass1234 &
当然,masterauth也可以在redis.conf配置文件中设置
2.登陆从库实例。
从库使用6390的端口,主库使用6389。
redis-cli -p 6390 -a pass1234
3.设置自己为从库,并指定从什么IP与端口接收数据。
127.0.0.1:6390> slaveof 127.0.0.1 6389
OK
此时就配置成功了,主库不用做任何事情。Redis的美在于简洁。slaveof参数也可以在配置文件中先设定。
4.验证
[ldh@hauser redis-2.8.3]$ redis-cli -p 6389 -a pass1234
127.0.0.1:6389> set fwy ppp
OK
127.0.0.1:6389> exit
[ldh@hauser redis-2.8.3]$ redis-cli -p 6390 -a pass1234
127.0.0.1:6390> get fwy
"ppp"
127.0.0.1:6390>
从库不能写了
127.0.0.1:6390> set fwy 1
(error) READONLY You can't write against a read only slave.
slave-read-only 设置为no就可以使从库可写,适合保存一些短暂数据,但是主库一旦同步了相应的数据就会覆盖掉从库的。

复制原理:
从库发出slaveof 127.0.0.1 6389命令的一刻,在从库实例启动的一刻(slaveof参数预先已配置好)
利用tcp/ip协议与127.0.0.1 6389连接;
告知自己的端口号;
发送sync命令。此时主库会做一次RDB持久化,并将保存期间的用户命令缓存起来,快照完成后,会将rdb文件与缓存命令,以及后续按时间生成的写都发给从库;
从库接收到后,将内容写到硬盘的临时文件上。写入完成后从库会用该临时文件替换RDB快照文件,再载入内存,并且接收缓存命令与后续的写。
注意:
1.每次断开后,上述步骤都得从走一次。同步过程中,从库不会堵塞,而是可以处理客户端的命令,从库会用同步前的数据对客户进行响应。可以配置slave-serve-stale-data参数为No来使从库在同步完成前,对所有命令(除了INFO与SLAVEOF)都回复“sync with master in progress"。
2.复制的过程中,快照无论在主库还是从库都起到很大作用。只要执行复制就会进行快照,即使我们关闭了主库的RDB方式的持久化(通过删除所有save参数),更进一步,无论是否启用了RDB方式的持久化,REDIS在启动的时候都会尝试读取dir和dbfilename两个参数指定的RDB文件来恢复数据库。

redis复制应用场景
读写分离:
常见的场景中,读的频率大于写,当主机无法应付大量的读请求时(尤其是耗资源的如sort排序命令),可以建立多个从库,主库写,多个从库读的方式。

从数据库的持久化
从库配置了dir与dbfilename,save参数等,就会进行RDB持久化。实际上,我们可以将主库的持久化禁用。此时从库崩溃后重启同步后会将主库的数据传过来,无需担心从库有数据丢失。而当主数据库崩溃时,需要在从数据库中使用slaveof no one命令将从库激活成主库继续提供服务,并在原来的主库启动后使用slaveof命令将其设为从库,又可以将数据同步回去。只有在主从库同时失效时,才会有那么点数据损失。



运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-12967-1-1.html 上篇帖子: Redis 在新浪微博中的应用 下篇帖子: Redis数据持久化

尚未签到

发表于 2014-1-2 09:08:19 | 显示全部楼层
他的冷漠,让我知道自己是该放开了

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

尚未签到

发表于 2014-1-2 17:49:48 | 显示全部楼层
亲爱的:想你的心要怎么让你知道。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

尚未签到

发表于 2014-1-3 04:21:44 | 显示全部楼层
承诺总是太假,我改如何面对现实。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表