http://www.cnblogs.com/liping13599168/archive/2011/04/14/2016226.html

Redis的主从复制功能非常强大,一个master可以拥有多个slave,而一个slave又可以拥有多个slave,如此下去,形成了强大的多级服务器集群架构。下面我演示下怎样在多台服务器上进行Redis数据主从复制。这里我假设有两台服务器,一台是Windows操作系统(局域网IP:192.168.3.82),一台是Linux操作系统(局域网IP:192.168.3.90),在两个操作系统都安装redis,Windows操作系统使用cygwin工具进行安装,命令为:

?
1
2
3
$ tar xzf redis-2.2.2.tar.gz
$ cd redis-2.2.2
$ make

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

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

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

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

?
1
bind 192.168.3.82

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

?
1
2
3
port 6381(服务端口号要分开)
bind 192.168.3.82
slaveof 192.168.3.82 6379 (设置master的Host以及Port)

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

?
1
2
bind 192.168.3.90
slaveof 192.168.3.82 6379(设置master的Host以及Port)

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

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

?
1
./redis-server redis.conf

来启动redis服务。

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

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

而Master上:

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

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

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
using ServiceStack.Redis;
  
static void Main(string[] args)
{
    IRedisClientFactory factory = new RedisCacheClientFactory();
    IRedisClient client = factory.CreateRedisClient("192.168.3.82", 6379);
  
    client.Set<STRING>("username", "leepy");
  
    string username = client.Get<STRING>("username");
  
    client.Save();
  
    Console.WriteLine("username: {0}", username);
  
    Console.ReadLine();
}

运行结果:

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

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

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


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

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


作者:Leepy
邮箱:sunleepy(AT)gmail.com
出处:http://liping13599168.cnblogs.com/ 

    

本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接,否则保留追究法律责任的权利。

转载于:https://www.cnblogs.com/WIT-Evan/p/7291428.html

在多台服务器上简单实现Redis的数据主从复制相关推荐

  1. 单台mysql增加节点_如何在一台服务器上安装两个PXC集群节点

    我认为在单个物理服务器上运行2个或多个Percona XtraDB Cluster(PXC)节点这样没有什么意义,除了教育和测试目的,但在这种情况下这样做仍然是有用的.最受欢迎的实现方式似乎是服务器的 ...

  2. 如何在同一台服务器上安装多套通达OA

    本人最近研究了在同一服务器安装多套通达OA的方法:发现网上关于这个话题的文章比较少,于是录制成视频,在此发布,希望对有这方面需求的朋友有所帮助: http://blog.163.com/zhuwei_ ...

  3. 0x01 前情提要随着疫情反复,今天我在家办公。我需要登一台服务器上配置,但是那个地址只能通过深信服vpn连接,在家办公一天就带了台kali系统的笔记本回来,没带windows的。 kali上

    0x01 前情提要 随着疫情反复,今天我在家办公.我需要登一台服务器上配置,但是那个地址只能通过深信服vpn连接,在家办公一天就带了台kali系统的笔记本回来,没带windows的. kali上的wi ...

  4. 如何在同一台服务器上绑定多个域名?

    一种情况:如果你有多个IP资源的话 多个IP对应多个Web站点如果本机已绑定了多个IP地址,想利用不同的IP地址得出不同的Web页面,则只需在"默认Web站点"处单击右键,选&qu ...

  5. 在一台服务器上搭多个网站的解决方案

    以前一直困惑于80端口就一个,如何才能在一台服务器上布署多个网站呢?最近因为公司服务器需要实现这个需求,才去认真的研究其中的原理与布署方案,本文总要记录winodws服务器下apache与iis的配置 ...

  6. php 上传本地图片到服务器上,PHP如何将图片文件上传到另外一台服务器上

    说,我有一个需求,就是一个临时功能.由于工作开发问题,我们有一个B项目,需要有一个商品添加的功能,涉及到添加商品内容,比如商品名字,商品描述,商品库存,商品图片等.后台商品添加的接口已经写完了,但是问 ...

  7. 一台服务器上如何创建多个网站多个站点?

    [一台服务器上如何创建多个网站?] 原理分析 本质就是Nginx监听一台服务器的80端口,使用不同的域名映射到不同的Linux文件目录(站点发布的目录) 首先就是多个域名可以解析到同一个ip地址.我们 ...

  8. 一台服务器两个mysql_在一台服务器上安装两个或多个mysql的实现步骤_MySQL

    如何在一台服务器上安装两个或者更多个的mysql呢?下面是详细的操作步骤,一起来学习学习吧. 一.环境 mysql软件包: mysql-5.6.31.tar mysql-5.5.32.tar 操作系统 ...

  9. [投稿]通过Web界面在多台服务器上批量创建文件

    最近在EDAS产品上发现了一个有意思的功能,能够在Web界面上向多台服务批量下发命令执行,觉得这个功能能够极大的提升效率,因此想分享给其他小伙伴. 这里我以"通过Web界面在多台服务器上批量 ...

最新文章

  1. 华为认证物联网开发利器:小熊派IoT开发板
  2. linux 内核 fork,《Linux内核分析》之分析fork函数对应的系统调用处理过程
  3. 深度复盘:AI 与脑科学的错位
  4. 「图像分类」从数据集和经典网络开始
  5. Kafka manager安装 (支持0.10以后版本consumer)
  6. Mysql动态数据多条件查询
  7. 歌一定要带监听耳机吗_在演唱会上,歌手耳朵里戴的不是“耳机”,而是这个东西...
  8. jQuery琐碎笔记
  9. java每隔一小时fullgc_JVM菜鸟进阶高手之路六(JVM每隔一小时执行一次Full GC)
  10. 初始化游戏状态数据二
  11. C++--第26课 - 异常处理 - 下
  12. 【matlab】拉普拉斯变换与反变换
  13. 分类:基于规则的分类技术
  14. Python实现二维码生成器
  15. 设置WDS桥接成功,上不了网怎么办?路由器WDS无线桥接设置正确方法
  16. ppt图片特效 c语言实现,用了这么久的PPT,才知道PPT可以一键生成特效图片!太好看了...
  17. 2020 中国独立开发者生存现状调研报告
  18. Linux 网卡流量工具详细介绍【转】
  19. VMWare 设置CentOS虚拟机固定IP地址
  20. h3c linux驱动 wn612_-新华三集团-H3C

热门文章

  1. 如何保障消息中间件 100% 消息投递成功?如何保证消息幂等性?
  2. 不懂算法,还想进大厂?做梦吧
  3. Spring Cloud Netflix项目进入维护模式之我见
  4. Redis:redis cluster的实现细节
  5. 37.拷贝控制和资源管理
  6. Android --- SharePreference 存储与数据库存储的效率分析
  7. Spring Boot—thymeleaf语法规则以及使用
  8. html5+css3网页制作:三栏布局宽度自适应,css三栏布局的五种写法,中间自适应,左右宽度固定...
  9. 不定积分24个基本公式_高分攻略丨语文阅读理解的24个万能答题公式
  10. 干粉灭火器的维护保养