`
zhaohaolin
  • 浏览: 1012313 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

在多台服务器上简单实现Redis的数据主从复制【转】

阅读更多

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

 

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

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

 

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

image

 

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

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

1 bind 192.168.3.82

 

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

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

 

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

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

 

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

 

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

1 ./redis-server redis.conf

来启动redis服务。

 

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

image

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

而Master上:

image

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

 

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

 

01 using ServiceStack.Redis;
02  
03 static void Main( string [] args)
04 {
05      IRedisClientFactory factory = new RedisCache ClientFactory();
06      IRedisClient client = factory.CreateRedisClient( "192.168.3.82" , 6379);
07  
08      client.Set< string >( "username" , "leepy" );
09  
10      string username = client.Get < string >( "username" );
11  
12      client.Save();
13  
14      Console.WriteLine( "username: {0}" , username);
15  
16      Console.ReadLine();
17 }</ string ></ string >

运行结果:

image

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

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

image

image

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

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

 

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

分享到:
评论

相关推荐

    Redis主从复制以及主从复制技术原理.docx

    Redis 主从复制是指将一台 Redis 服务器的数据,复制到其他的 Redis 服务器。前者称为主节点(master),后者称为从节点(slave),数据的复制是单向的,只能由主节点到从节点。默认情况下,每台 Redis 服务器都是主节点...

    Redis主从复制和集群配置

    Redis的主从复制机制是一种重要的数据同步方式,它支持一个或多个从数据库(slave)与主数据库(master)之间进行数据同步。其中,主数据库负责处理写操作,并自动将这些写操作同步到所有从数据库;而从数据库通常只用于...

    Redis之主从复制ppt分享

    Redis的主从复制是分布式系统中常见的数据冗余和高可用性策略,它允许一个Redis实例(主节点)的数据被复制到一个或多个其他实例(从节点)。这种复制模式使得从节点可以作为读取的备用资源,提升读性能,同时在主...

    Redis哨兵主从模式+keepalived.docx

    Redis主从复制模式是一种数据冗余容灾机制,通过在多台服务器上部署Redis实例,实现数据的实时同步和备份。当主服务器宕机时,备服务器可以自动切换为主服务器,提供高可用性的Redis服务。 在Redis主从复制模式中,...

    Redis的主从复制1

    主从复制是指在一个Redis实例(主节点)上进行数据修改,然后将这些修改同步到其他实例(从节点)的过程。这使得从节点可以作为主节点的备份,一旦主节点发生故障,从节点可以接管服务,保证服务连续性。此外,主从...

    redis主从配置及通过keepalived实现redis自动切换

    当 Master 恢复正常时,从 Slave 同步数据,同步数据之后关闭主从复制功能,恢复 Master 身份,于此同时 Slave 等待 Master 同步数据完成之后,恢复 Slave 身份。 2. Keepalived 介绍: Keepalived 是一个基于 ...

    第四十六章:Redis数据库主从复制1

    5. 验证主从复制:通过Redis客户端在主节点和从节点上检查复制状态,确保从节点已经成功复制了主节点的数据。 以上就是Redis数据库主从复制的基本概念、同步过程以及配置案例。在实际应用中,还需要考虑网络状况、...

    LAMP架构+Redis主从复制.docx

    LAMP架构是指Linux操作系统、Apache HTTP服务器、MySQL数据库和PHP编程语言的组合,而Redis则是一个开源的、基于内存的数据存储系统,本文将详细介绍如何安装和配置LAMP架构,并使用Redis主从复制实现高可用性。...

    redis常用命令,redis配置文件,redis持久化,redis事务,redis主从复制,jedis的使用

    分布式数据库是指将数据分布式存储在多个节点上的数据库系统。分布式数据库可以提供高可用性、负载均衡和水平扩展等优点。 * CAP 原理:分布式数据库需要在一致性、可用性和分区容忍性之间进行平衡 * BASE 原理:...

    redis 主从服务器配置

    在本文中,我们将详细介绍如何配置 Redis 主从服务器,以实现高可用性和高性能的缓存系统。 Redis 概述 Redis 是一个开源的、基于内存的数据存储系统,可以用作数据库、缓存和消息队列等。Redis 的特点是高性能、...

    高可用Redis:主从复制、sentinel哨兵、漂移VIP故障转移.pdf

    在主从复制中,主服务器会将数据变动同步到从服务器上,这样就可以通过读取从服务器的数据来分担主服务器的读取压力。在Redis配置文件中,需要将bind指令的值从默认的***.*.*.*修改为*.*.*.*,以允许远程访问,并...

    linux服务器安装部署redis、主从部署文档说明

    **Linux服务器上Redis的...通过以上步骤,你可以成功在Linux服务器上安装并部署Redis,无论是单机还是主从模式,都能为你的应用提供高效的数据存储和访问支持。在实践中,还需要不断学习和优化,以适应不同场景的需求。

    深入剖析Redis主从复制.pdf

    Redis 主从复制是一种常见的数据冗余和高可用性策略,它允许数据在多个Redis服务器之间复制,以确保即使主服务器发生故障,数据也能通过从服务器继续提供服务。本文将深入探讨Redis主从复制的机制,包括全同步和部分...

    linux下如何安装配置redis及主从配置

    主从复制是指一个主Redis服务器将数据更新操作同步到一个或多个从服务器的过程。配置主从复制的步骤如下: 1. **复制slave目录**: 为了管理方便,复制整个Redis目录用于从服务器,并创建配置文件。 2. **修改从...

    Redis主从复制教程与实战

    在主从复制的基础上,配合读写分离,可以由主节点提供写服务,由从节点提供读服务(即写Redis数据时应用连接主节点,读Redis数据时应用连接从节点),分担服务器负载;尤其是在写少读多的场景下,通过多个从节点分担...

    redis 5.0.7 主从配置文件

    在分布式系统中,为了提高可用性和数据安全性,通常会采用主从复制(Master-Slave replication)的架构。这里的 "redis 5.0.7 主从配置文件" 包含了 `redis-master.conf` 和 `redis-slave.conf` 两个文件,分别对应...

    redis主从复制过程.rar

    在分布式系统中,为了保证数据的高可用性和容错性,主从复制(Replication)是一种常见的策略。本压缩包中的"redis主从复制过程.pdf"文件详细介绍了Redis的主从复制流程。以下是关于Redis主从复制的关键知识点: 1....

    docker-compose redis主从哨兵 redis多节点高可用 redis集群高可用

    1. **Redis主从复制**:这是基础的高可用方案,通过将数据实时同步到一个或多个从节点,即使主节点故障,从节点也能无缝接管服务。在Docker Compose文件中,我们需要定义三个服务,一个为主节点,两个为从节点,并...

    spring cache + redis 主从

    为了实现Redis的主从配置,以及高可用性配置,首先需要熟悉Redis的基本操作,包括安装、配置与管理。此外,还需要掌握如何将Spring Cache与Redis整合,以便在应用中高效使用缓存机制。 一、Redis的主从配置 1. ...

Global site tag (gtag.js) - Google Analytics