首页 > 其他 > 详细

使用simple_flow 10行代码简单实现redis的复制功能

时间:2014-11-12 02:28:21      阅读:281      评论:0      收藏:0      [点我收藏+]

?简介:

?????我们知道redis的自带的复制功能,是在slave连上master之后,master会将全部数据通过rdb存储之后发送到slave,增量的数据再通过aof文件格式传输,当数据量比较大的时候,这样会对master服务造成影响,尤其是网络不太稳定的时候,redis会重新进行全量的复制,虽然2.8之后可以部分复制了,但是依然不是完全可靠的,所以,为了能让服务更加稳定的运行,我换了一个思路,采用拉的方式来进行同步,具体流程如下图:

?????bubuko.com,布布扣?

?

实现步骤:

(1) master redis开启aof, 具体参考?http://redis.io/topics/persistence?,启动master & slave, 本例中master为6379端口,slave为6380端口

(2) 下载simple_flow, git clone?https://github.com/hongliuliao/simple_flow

(3) 编译出需要的文件: make && make test

(4) 启动?redis_repl_flow_server: ./bin/redis_repl_flow_server

(5) 启动 fileagent:?./bin/file_agent localhost 3491 ~/programs/redis-2.8.13/appendonly.aof?

?

验证:

(1) 向master写一条数据,?echo "set test9 abd" | nc localhost 6379?

(2) 从slave查询数据:?echo "get test9"| nc localhost 6380 , 如果响应如下,表示成功

bubuko.com,布布扣?

?

代码: 可以在test目录下的redis_repl_flow_server.cpp??中查看,核心代码约10行

ps: 现在只是实现了基本功能,后面会继续完善

使用simple_flow 10行代码简单实现redis的复制功能

原文:http://finallygo.iteye.com/blog/2154576

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!