redis主从服务器必须在两台机器运行,在多台服务器上简单实现Redis的数据主从复制...

Redis的主从复制功能非常强大,一个master可以拥有多个slave,而一个slave又可以拥有多个slave,如此下去,形成了强大的

多级服务器集群架构。下面我演示下怎样在多台服务器上进行Redis数据主从复制。这里我假设有两台服务器,一台是Windows操作系统(局域网

IP:192.168.3.82),一台是Linux操作系统(局域网IP:192.168.3.90),在两个操作系统都安装

redis,Windows操作系统使用cygwin工具进行安装,命令为:

可以通过"make test”命令判断是否安装成功。

这里我使用1个master以及2个slave(master在Windows下,一个slave在Windows下,一个slave在Linux下),基本流程是:

7acfd76cc4d81611438cb1b52a05c0e5.png

1. 在Windows服务器上创建两个目录,Demo1,Demo2,其中Demo1用来存放Master服务,Demo2用来存放Slave服务,

在Master服务中的配置文件修改:

在Slave服务中的配置文件修改:

2. 在Linux服务器上创建一个目录,Demo,Demo存放Slave服务,在服务中的配置文件修改:

这样就完成了所有的配置。

3. 现在运行这3个服务,通过命令:

来启动redis服务。

注意到,当我启动master,然后启动一个slave的时候,可以发现slave上:

c695fa2a327aa0c0040587bb1378d634.png

会发送一个SYNC请求,从Master上面进行相应,而且它支持自动重连,即当master掉线的情况下,它会处于等待请求的状态。

而Master上:

6c4c25b99e588ee279bb46f3f106a79e.png

能够接受Slave的应答,并且开始持久化操作,说明在Slave每次去连接Master的时候,都会去持久化磁盘。

4. 现在开始写一个客户端程序,使用到ServiceStack.Redis.dll的.NET组件:

运行结果:

91008665a85aa12ab9681fd462494e07.png

数据Set的时候,数据保存在内存中,当调用Save方法时候,将数据保存在磁盘中。

其中你会发现在3个服务目录中,都出现了dump.rdb,说明Master的文件都同步到Slave中去了。

b1bdc2dbf7a99e181424b2bb7dad485b.png

a6b44d511e523720777b0549f64502c0.png

用UE编辑器打开文件查看:

a0545eb8b660204cc1f854c050bb24ea.png

从Redis源码中,可以发现rdb文件采用的是lzf压缩算法进行实现,默认lzf压缩算法是开启的。

这样你可以通过其他的客户端程序或者Web平台去读取Slave磁盘数据库的数据,真正达到了读写分离的目的。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值