一、Redis的Replication:
这里首先需要说明的是,在Redis中配置Master-Slave模式真是太简单了。相信在阅读完这篇Blog之后你也可以轻松做到。这里我们还是先列出一些理论性的知识,后面给出实际操作的案例。
下面的列表清楚的解释了Redis Replication的特点和优势。
1). 同一个Master可以同步多个Slaves。
2). Slave同样可以接受其它Slaves的连接和同步请求,这样可以有效的分载Master的同步压力。因此我们可以将Redis的Replication架构视为图结构。
3). Master Server是以非阻塞的方式为Slaves提供服务。所以在Master-Slave同步期间,客户端仍然可以提交查询或修改请求。
4). Slave Server同样是以非阻塞的方式完成数据同步。在同步期间,如果有客户端提交查询请求,Redis则返回同步之前的数据。
5). 为了分载Master的读操作压力,Slave服务器可以为客户端提供只读操作的服务,写服务仍然必须由Master来完成。即便如此,系统的伸缩性还是得到了很大的提高。
6). Master可以将数据保存操作交给Slaves完成,从而避免了在Master中要有独立的进程来完成此操作。
二、Replication的工作原理:
在Slave启动并连接到Master之后,它将主动发送一个SYNC命令。此后Master将启动后台存盘进程,同时收集所有接收到的用于修改数据集 的命令,在后台进程执行完毕后,Master将传送整个数据库文件到Slave,以完成一次完全同步。而Slave服务器在接收到数据库文件数据之后将其 存盘并加载到内存中。此后,Master继续将所有已经收集到的修改命令,和新的修改命令依次传送给Slaves,Slave将在本次执行这些数据修改命 令,从而达到最终的数据同步。
如果Master和Slave之间的链接出现断连现象,Slave可以自动重连Master,但是在连接成功之后,一次完全同步将被自动执行。
三、如何配置Replication:
见如下步骤:
1). 同时启动两个Redis服务器,可以考虑在同一台机器上启动两个Redis服务器,分别监听不同的端口,如6379和6380。
2). 在Slave服务器上执行一下命令:
/> redis-cli -p 6380 #这里我们假设Slave的端口号是6380
redis 127.0.0.1:6380> slaveof 127.0.0.1 6379 #我们假设Master和Slave在同一台主机,Master的端口为6379
OK
上面的方式只是保证了在执行slaveof命令之后,redis_6380成为了redis_6379的slave,一旦服务(redis_6380)重新启动之后,他们之间的复制关系将终止。
如果希望长期保证这两个服务器之间的Replication关系,可以在redis_6380的配置文件中做如下修改:
/> cd /etc/redis #切换Redis服务器配置文件所在的目录。
/> ls
6379.conf 6380.conf
/> vi 6380.conf
将
# slaveof <masterip> <masterport>
改为
slaveof 127.0.0.1 6379
保存退出。
这样就可以保证Redis_6380服务程序在每次启动后都会主动建立与Redis_6379的Replication连接了。
四、应用示例:
这里我们假设Master-Slave已经建立。
#启动master服务器。
[root@Stephen-PC redis]# redis-cli -p 6379
redis 127.0.0.1:6379>
#情况Master当前数据库中的所有Keys。
redis 127.0.0.1:6379> flushdb
OK
#在Master中创建新的Keys作为测试数据。
redis 127.0.0.1:6379> set mykey hello
OK
redis 127.0.0.1:6379> set mykey2 world
OK
#查看Master中存在哪些Keys。
redis 127.0.0.1:6379> keys *
1) "mykey"
2) "mykey2"
#启动slave服务器。
[root@Stephen-PC redis]# redis-cli -p 6380
#查看Slave中的Keys是否和Master中一致,从结果看,他们是相等的。
redis 127.0.0.1:6380> keys *
1) "mykey"
2) "mykey2"
#在Master中删除其中一个测试Key,并查看删除后的结果。
redis 127.0.0.1:6379> del mykey2
(integer) 1
redis 127.0.0.1:6379> keys *
1) "mykey"
#在Slave中查看是否mykey2也已经在Slave中被删除。
redis 127.0.0.1:6380> keys *
1) "mykey"
- 浏览: 2540155 次
- 性别:
- 来自: 深圳
最新评论
-
zhongmin2012:
原文的书在哪里
数据库水平切分的实现原理解析---分库,分表,主从,集群,负载均衡器 -
renzhengzhi:
你好,请问个问题,从master同步数据到slave的时候,s ...
数据库水平切分的实现原理解析---分库,分表,主从,集群,负载均衡器 -
ibc789:
你好,看了你的文章,我想请教个问题, 我在用 redis的时候 ...
redis 的两种持久化方式及原理 -
iijjll:
写得非常好
数据库水平切分的实现原理解析---分库,分表,主从,集群,负载均衡器 -
iijjll:
写得非常好
数据库水平切分的实现原理解析---分库,分表,主从,集群,负载均衡器
相关推荐
Redis学习手册 主从复制 doc Redis学习手册 事务 doc Redis学习资料 rar redis讲义 doc">redis 2 8 13 tar gz redisbin x32 zip redisbin x64 zip Redis学习手册 Hash数据类型 doc Redis学习手册 Key操作命令 doc ...
Redis 主从复制和哨兵配置手册 Redis 主从复制是一种高可用性解决方案,可以确保数据的安全和可靠性。在这个手册中,我们将详细介绍 Redis 主从复制的配置和哨兵的配置。 环境准备 在开始配置 Redis 主从复制之前...
Redis,全称Remote Dictionary Server,是一款高性能的键值存储系统,常被用于...通过阅读"Redis学习手册",你将能够深入了解Redis的工作原理,熟练使用其各种功能,从而在你的IT职业生涯中发挥出Redis的强大效能。
在高可用性方面,Redis提供了主从复制(Replication)和哨兵(Sentinel)系统,后者可以监控和自动故障转移,确保服务的持续性。集群(Cluster)功能则支持数据分片,允许多个节点并行处理请求,提高系统的可扩展性...
6. **主从复制**:了解如何配置Redis的主从复制,实现数据的备份和负载均衡,提高系统的可用性和容错性。 7. **哨兵系统(Sentinel)**:学习Redis Sentinel如何监控和自动故障转移,确保高可用性集群的稳定运行。 ...
1. 复制:Redis支持主从复制,可以构建高可用性系统,确保数据的一致性和服务的连续性。 2. 集群:Redis Cluster提供数据分区和故障转移功能,支持多节点分布式部署,提高系统的可扩展性。 六、事务与Lua脚本 Redis...
Redis支持主从复制机制,通过复制主节点的数据到从节点,实现数据备份和读写分离等功能。主从复制过程包括三个阶段: 1. **初始化同步**: 从节点连接主节点后,会发送`SYNC`命令请求主节点的所有数据。 2. **部分重...
2019年的这个“redis帮助手册”是为Redis学习者和开发者提供的一份详尽参考资料,包含了Redis的命令使用方法和代码示例。 Redis作为一款NoSQL数据库,其主要特点是数据结构丰富,支持字符串、哈希、列表、集合、...
Redis支持主从复制,一个主服务器可以有多个从服务器,用于提高读取性能和实现故障切换。 七、哨兵系统 Redis Sentinel是一个高可用性解决方案,它可以监控、故障检测和自动故障转移,确保集群的稳定运行。 八、...
本压缩包包含的"Redis参考手册.CHM"是Redis命令的中文完整版手册,对于学习和使用Redis的开发者来说,是一份极其实用的资料。 一、Redis数据类型 Redis支持五种基本数据类型:字符串(String)、哈希(Hash)、...
接下来,书中会深入探讨Redis的高级特性,如事务(Transactions)、发布/订阅(Pub/Sub)、持久化(Persistence)机制,包括RDB快照和AOF日志,以及主从复制和哨兵系统(Sentinel)以实现高可用性。此外,还会有对...
主从复制是Redis分布式特性的重要组成部分,它支持一主多从、多主多从等部署模式,并详细描述了主从复制的特点和配置方法;事务控制允许用户将多个命令打包,然后一次性、顺序地执行,这包括了简单的事务控制和取消...
为了提高可用性和扩展性,Redis支持主从复制。通过复制,数据可以从主节点同步到多个从节点,这样即使主节点出现问题,也能从从节点恢复服务。手册会详细介绍复制的配置和故障转移。 六、集群部署 Redis Cluster是...
在性能优化方面,Redis手册会指导如何调整配置参数,如内存管理、最大连接数、客户端超时等,以适应不同的应用场景。同时,还会讨论如何监控Redis的运行状态,使用`INFO`命令查看各项指标,以及利用第三方工具进行更...
3. **主备切换机制**:Redis的主从复制机制中,当主节点故障时,无法自动将备用节点提升为主节点,这可能会影响系统的可用性。 #### 五、Redis与关系型数据库的比较 - **数据模型**:Redis的数据模型相对简单,更...
3. 主从复制:Redis支持主从复制模式,通过复制,可以实现数据的备份和负载均衡。 4. 事务:Redis支持简单的事务操作,允许多个命令在一个原子操作中执行。 二、Redis命令使用 1. 命令格式:Redis命令通常由命令...
6. **主从复制**:Redis的复制功能允许创建一个或多个从节点,主节点的数据变化会同步到从节点,提高数据可用性和读取性能。了解复制的配置和故障切换过程对于高可用性至关重要。 7. **Redis Cluster**:在"redis...
Redis支持主从复制,可以创建多个副本节点,提高读取性能和容错能力。 6. **Cluster集群**: Redis Cluster提供了分布式存储解决方案,可以将数据分布在多个节点上,支持自动分区和故障转移。 7. **Lua脚本**: ...
首先,Redis中文参考手册是学习Redis的基础,它详细介绍了Redis的所有命令、数据类型和配置选项。在手册中,你会了解到Redis支持的基本数据结构,如字符串(Strings)、哈希(Hashes)、列表(Lists)、集合(Sets)和有序...
同时,Redis也支持主从复制,提高读取性能和数据安全性。 11. **Redis的高级用法** 还有许多高级特性,如Lua脚本、Geo定位、HyperLogLog、Bitwise操作等,都可以通过PHP的`redis`扩展进行操作。 通过本手册,你将...