`
bit1129
  • 浏览: 1069862 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

【Redis一】Redis2.4.5搭建主从复制环境

 
阅读更多

Redis主从复制搭建步骤

 

Redis搭建主从复制的步骤十分简单,以下在Windows上操作。

 

注意,本文基于Redis2.4.5,属于较老版本,这里强调版本是在本文写完的时候补上的。对Redis的主从复制机制,失望透顶,没有任何的failover,不知道最新的2.8版本,以及即将出来的3.0版本,是否有改进。

 

1. 解压Redis压缩包至E:\devsoftware\redis-2.4.5-win32-win64\64bit

2.在Redis目录中复制两份redis.conf,分别命名为redis.conf.slave1,redis.conf.slave2

3.修改redis.conf.slave1文件,

  • port 6379 改为 port 6380
  • 打开slaveof指令,改为slaveof 127.0.0.1 6379
  • 将快照文件名改为dbfilename dump.slave1.rdb
  • 如果使用AOF方式持久化,则需要将appendfilename appendonly.aof改为appendfilename appendonly.slave1.aof

4. 修改redis.conf.slave2文件

  • port 6379 改为 port 6381
  • 打开slaveof指令,改为slaveof 127.0.0.1 6379
  • 将快照文件名改为dbfilename dump.slave2.rdb
  • 如果使用AOF方式持久化,则需要将appendfilename appendonly.aof改为appendfilename appendonly.slave2.aof

5. 启动三个Redis服务器,形成一主两从的主从复制副本集

 

通过上面的启动过程,可见只需要redis-server一个启动脚本即可,它读取不同的配置文件,来完成初始化

 

 

  • Master启动时的日志输出

 

 

[21684] 25 Nov 20:54:16 * Slave ask for synchronization
[21684] 25 Nov 20:54:16 * Starting BGSAVE for SYNC
[21684] 25 Nov 20:54:16 * Foregroud saving started by pid 21684
[21684] 25 Nov 20:54:17 * DB saved on disk
[21684] 25 Nov 20:54:17 * Background saving terminated with suc
[21684] 25 Nov 20:54:17 * Synchronization with slave succeeded

 

 

  •  Slave1启动时的日志输出

 

[21068] 25 Nov 20:54:15 * Server started, Redis version 2.4.5
[21068] 25 Nov 20:54:15 * DB loaded from disk: 0 seconds
[21068] 25 Nov 20:54:15 * The server is now ready to accept connections on port
[21068] 25 Nov 20:54:16 - DB 0: 1 keys (0 volatile) in 4 slots HT.
[21068] 25 Nov 20:54:16 - 0 clients connected (0 slaves), 1180024 bytes in use
[21068] 25 Nov 20:54:16 * Connecting to MASTER...
[21068] 25 Nov 20:54:16 * MASTER <-> SLAVE sync started
[21068] 25 Nov 20:54:16 * Non blocking connect for SYNC fired the event.
[21068] 25 Nov 20:54:17 * MASTER <-> SLAVE sync: receiving 19 bytes from master
[21068] 25 Nov 20:54:17 * MASTER <-> SLAVE sync: Loading DB in memory
[21068] 25 Nov 20:54:17 * MASTER <-> SLAVE sync: Finished with success

 

主服务器写入从服务器读取数据测试

  •  往主服务器上写入一个数据,检查从服务器是否同步

 

 

E:\devsoftware\redis-2.4.5-win32-win64\64bit>redis-cli.exe -h 127.0.0.1 -p 6379
redis 127.0.0.1:6379> set  abc 1
OK
redis 127.0.0.1:6379> get abc
"1"
redis 127.0.0.1:6379>Ctrl + C
 

 

  • 两个从服务器的读取操作:

 

 

E:\devsoftware\redis-2.4.5-win32-win64\64bit>redis-cli.exe -h 127.0.0.1 -p 6380
redis 127.0.0.1:6380> get abc
"1"
redis 127.0.0.1:6380> ^C
E:\devsoftware\redis-2.4.5-win32-win64\64bit>redis-cli.exe -h 127.0.0.1 -p 6381
redis 127.0.0.1:6381> get abc
"1"
redis 127.0.0.1:6381>
 

 

从服务器写入,其它服务器读取数据测试

  • 往从服务器上写入一个数据,检查其它服务器是否同步

 

 

redis 127.0.0.1:6381> set def 2
OK 

 

  • 两个从服务器的读取操作:

 

E:\devsoftware\redis-2.4.5-win32-win64\64bit>redis-cli.exe -h 127.0.0.1 -p 6380
redis 127.0.0.1:6380> get def
(nil)
redis 127.0.0.1:6380> ^C
E:\devsoftware\redis-2.4.5-win32-win64\64bit>redis-cli.exe -h 127.0.0.1 -p 6379
redis 127.0.0.1:6379> get def
(nil)
 结果很意外。意料中,此处有两种情况,一是把写请求转发给主服务器,然后主服务器再同步给从服务器,这是Redis的做法;二是不允许直接写从服务器,这是MongoDB的做法。如下图所示,slave2有两个key,slave1只有1个key
 

 
 
从服务器写入后,其它两台并没有写入,这产生了严重的不一致性问题,如何解决??
 
.

主服务器挂了,是否会自动的Lead选举

 经测试发现,slave1和slave2已经处于无Lead状态了,测试方法根据前面的主服务器的特性,在slave1和slave2上分别插入一条数据,看能否同步到对方的服务器上,结果显示没有同步,也就是说,slave1和slave2都不是Leader。
当主服务器起来之后,slave1和slave2又成为它的slave,也就是,不管主服务器什么情况,它永远是slave的master。不幸的事情发生了,在Master挂了这段时间里,对slave1和slave2的所有写操作,等到Master起来,由于主从复制,所有对slave的写都被冲洗掉了。

 内存快照文件

在Redis的当前目录下产生了三个rdb文件,分别是dump.rdb,dump.slave1.rdb和dump.slave2.rdb。rdb文件时Redis的内存快照文件。rdb是二进制文件,不过用文本编辑器打开rdb文件,还是能隐隐约约的看到其中的一些内容,如dump.slave2.rdb
REDIS0002? def? abc?
Redis默认配置启用了内存快照的方式来进行内存数据持久化操作,这在redis.conf文件中定义
save 900 1 //900秒内,有1个key变化,则做快照
save 300 10 //300秒内,有10个key变化,则做快照
save 60 10000 //60秒内,有10000个key变化,则做快照
 计时时间点是从内存快照做完开始算起
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

 

 

  • 大小: 95 KB
分享到:
评论

相关推荐

    redis.v2.4.5 windows 免安装版

    Redis 2.4.5 版本是 Redis 的一个早期版本,尽管现在可能已经更新到了更高版本,但在当时,这个版本包含了多个关键特性,例如发布/订阅(pub/sub)、事务支持、简单的主从复制等。以下是对 Redis 及其在 Windows 上...

    redis-2.4.5-win32-win64

    5. **主从复制**:Redis支持主从复制,可以创建多个副本,提高可用性和读取性能。 6. **Lua脚本**:通过Lua脚本,可以在服务器端执行复杂的计算,简化客户端逻辑。 7. **网络接口**:Redis使用TCP协议,可以通过网络...

    Redis-2.4.5-win32 win64 入门整合

    5. **复制(Replication)**:主从复制功能,可以提高可用性和数据安全性。 6. **发布/订阅(Pub/Sub)**:简单的消息队列服务,支持事件驱动编程。 7. **Lua脚本支持**:允许用户在服务器端执行Lua脚本,进行复杂...

    redis-2.4.5

    - 复制:Redis支持主从复制,可以设置多个副本以实现数据冗余和故障恢复。2.4.5版可能不包含后来引入的多级复制和全同步优化。 7. **集群支持**: - Redis 2.4.5版本不包含完整的集群功能,需要升级到更高版本...

    Redis2.4.5+Serverstackredis3.29无限制.zip

    这个压缩包“Redis2.4.5+Serverstackredis3.29无限制.zip”包含了 Redis 的两个不同版本,即 Redis 2.4.5 和 ServerStack Redis 3.2.9。在本文中,我们将深入探讨这两个版本的特性,以及如何安装和使用它们。 首先...

    Redis2.4.5+Serverstackredis3.29无限制

    4. **复制功能增强**:主从复制的稳定性得到了改善,可以更好地处理网络中断和错误恢复。 5. **TTL(生存时间)命令改进**:新增了PEXPIRE和PEXPIREAT命令,支持毫秒级别的过期时间设置。 **ServerStack Redis ...

    redis-2.4.5-win32-win64.7z

    - **主从复制**:通过复制功能,可以创建Redis的副本以提高可用性和读取性能。 以上是对"redis-2.4.5-win32-win64.7z"压缩包中包含的Redis在Windows环境下的相关知识点的详细解析。在使用过程中,确保阅读README和...

    redis-2.4.5-win32-win64.rar

    6. **主从复制**:Redis 2.4.5版本支持主从复制,可以创建一个或多个从节点,从节点的数据实时同步自主节点,增强了系统的容错性和可用性。 7. **性能优化**:Redis基于内存设计,其读写速度极快,且支持批量操作和...

    redis2.4.5 64/32位

    标题"redis2.4.5 64/32位"表明这是Redis的一个特定版本,即2.4.5,同时提供了适用于64位和32位操作系统的版本。这个压缩包可能包含了不同体系架构的Redis安装或运行所需的所有文件。 描述中提到"里面有无迷版和有密...

    redis2.4.5-win32-win64

    总的来说,“redis2.4.5-win32-win64”压缩包为Windows用户提供了一种在本地环境中部署Redis的便捷方式,无论你是开发者还是运维人员,都能借此深入了解和使用Redis,体验其高效的数据处理能力。

    redis windows 服务器最新版_32位_64位

    综上所述,这个压缩包为Windows用户提供了一个开始使用Redis的起点,无论是了解其基本用法还是搭建本地开发环境,都能从中受益。然而,实际生产环境中应确保使用最新且稳定的版本,并遵循最佳实践以保证数据的安全和...

    redis-windows32/64集合版

    虽然此版本相对较旧,但它仍包含基本的Redis功能,如TTL(生存时间)设置、事务支持、主从复制等。不过,对于生产环境,通常建议使用较新版本,以获取更多的优化和安全更新。 在使用Redis时,需要注意以下几点: 1....

    redis-windows.zip

    2. 主从复制:Redis支持主从复制,可以将数据自动同步到多个从节点,实现数据备份和高可用性。 3. 事务:Redis支持事务,用户可以一次性执行多个命令,保证命令的原子性。 4. 持久化:Redis通过RDB(快照)和AOF...

    redis-win64bit

    3. **主从复制**: Redis支持主从复制,可以创建多个从节点复制主节点的数据,提高数据可用性和读取性能。 4. **事务**: Redis支持事务,用户可以发送一组命令,Redis会按照顺序原子地执行这些命令。 5. **发布订阅...

    Windows版redis

    7. **主从复制**:Redis支持主从复制,可以创建多个从节点来备份主节点的数据,提高系统的可用性和数据安全性。复制过程是异步的,不影响主节点的性能。 8. **事务**:Redis支持简单的事务功能,允许在一个操作序列...

    redis windows版

    - **主从复制**:支持数据的主从同步,实现高可用性。 - **持久化**:通过RDB快照和AOF日志两种方式保证数据在服务器重启后的恢复。 - **事务**:虽然不支持传统数据库的ACID事务,但提供了简单的事务功能,可以...

    Redis服务端,memcached

    2. **复制**:Redis支持主从复制,可以创建多个副本以实现高可用性。 3. **事务**:Redis提供了简单的事务功能,允许一次执行多个命令。 4. **Lua脚本**:通过内置的Lua解释器,用户可以编写脚本进行原子操作。 在...

    SpringBoot-MybatisPlus-Redis 外卖系统源码.zip

    SpringBoot项目—外卖系统 系统概述 项目分析 SpringBoot-2.4.5 移动端前台:手机号登录(阿里云服务_短信验证码)、菜品浏览、下单、地址管理、菜品规格、购物车、历史订单 客户端用户:登录移动端...MySQL主从复制

Global site tag (gtag.js) - Google Analytics