使用simple_flow 10行代码简单实现redis的复制功能_C/C++_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > C/C++ > 使用simple_flow 10行代码简单实现redis的复制功能

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

 2014/11/11 21:27:59  finallygo  程序员俱乐部  我要评论(0)
  • 摘要:?简介:?我们知道redis的自带的复制功能,是在slave连上master之后,master会将全部数据通过rdb存储之后发送到slave,增量的数据再通过aof文件格式传输,当数据量比较大的时候,这样会对master服务造成影响,尤其是网络不太稳定的时候,redis会重新进行全量的复制,虽然2.8之后可以部分复制了,但是依然不是完全可靠的,所以,为了能让服务更加稳定的运行,我换了一个思路,采用拉的方式来进行同步,具体流程如下图:?实现步骤:(1)masterredis开启aof
  • 标签:功能 实现 使用 代码 复制

?简介:

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

?????麦库截图20141411145914189.jpgfiles.note.sdo.com/Z1AGEC7E81DD688D97370440883C8C38AF49A313" title="麦库截图20141411145914189.jpg">?

?

实现步骤:

(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 , 如果响应如下,表示成功

麦库截图20141511151314250.jpg?

?

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

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

发表评论
用户名: 匿名