Redis和MongoDB的复制、持久化、集群和集群管理功能
2014-08-19 20:40
786 查看
Redis的复制功能
Redis的持久化功能
Redis的Sentinel(管理多个Redis服务器,监控、提醒和自动故障迁移)
Redis Sentinel 是一个分布式系统, 你可以在一个架构中运行多个 Sentinel 进程(progress), 这些进程使用流言协议(gossip protocols)来接收关于主服务器是否下线的信息, 并使用投票协议(agreement protocols)来决定是否执行自动故障迁移,
以及选择哪个从服务器作为新的主服务器。
Redis集群教程
Redis集群规范
MongoDB的复制功能(摘自《MongoDB实战》)
主从复制和副本集。两种方式都是在一个主节点进行写操作(写入的数据被异步同步到所有的从节点上),并从从节点上读取数据。使用相同的复制机制,但是副本集还能保证自动故障转移等其他更高级的功能,因此生产上推荐使用副本集。
为什么复制很重要?以下是一些数据库故障
1、应用程序与数据库之间的网络连接丢失
2、计划停机,但服务器没有按照预定的计划重新上线。
3、断电。
4、数据库服务器硬盘故障。
功能:
1、复制主要用来做冗余(不是备份的替代)。
2、故障转移。
3、能在副本间均衡读负载。
主从复制:
副本集:最小的副本集由三个节点组成,两个一等的、持久化mongod实例,两者都能作为副本集的主节点,都有完整的数据副本。一个仲裁节点,不复制数据,只是中立观察者,在要求故障转移时帮助选出新的主节点。
副本集依赖于两个基础机制:oplog和“心跳”(heartbeat)。oplog让数据的复制成为可能,而“心跳”则监控健康状况并触发故障转移。
关于oplog:
oplog是一个固定集合,位于每个复制节点的local数据库里,记录了所有对数据的变更。每次客户端向主节点写入数据,就会自动向主节点的oplog里添加一个条目,其中包含了足够的信息来再现数据。一旦写操作被复制到某个从节点上,从节点也会保存一条关于写入的记录。每个oplog条目都由一个BSON时间戳进行标识,所有从节点都使用这个时间戳来追踪它们最后应用的条目。从节点也有自己的一份oplog,假设向副本集的主节点发起写操作,接下来写操作先被记录下来,添加到主节点的oplog里。与此同时,所有从节点复制oplog。因此,当某个从节点准备更新自己时,他做了三件事:首先,查看自己的oplog里最后一条的时间戳;其次,查询主节点oplog里所有大于此时间戳的条目,最后,把那些条目添加到自己的oplog里并应用到自己的库里。也就是说,万一发生故障,任何被提升为主节点的从节点都会有一个oplog,其他从节点能以它为复制源进行复制。从节点使用长轮询(long
polling)立即应用来自主节点oplog的新条目。
Redis的持久化功能
Redis的Sentinel(管理多个Redis服务器,监控、提醒和自动故障迁移)
Redis Sentinel 是一个分布式系统, 你可以在一个架构中运行多个 Sentinel 进程(progress), 这些进程使用流言协议(gossip protocols)来接收关于主服务器是否下线的信息, 并使用投票协议(agreement protocols)来决定是否执行自动故障迁移,
以及选择哪个从服务器作为新的主服务器。
Redis集群教程
Redis集群规范
MongoDB的复制功能(摘自《MongoDB实战》)
主从复制和副本集。两种方式都是在一个主节点进行写操作(写入的数据被异步同步到所有的从节点上),并从从节点上读取数据。使用相同的复制机制,但是副本集还能保证自动故障转移等其他更高级的功能,因此生产上推荐使用副本集。
为什么复制很重要?以下是一些数据库故障
1、应用程序与数据库之间的网络连接丢失
2、计划停机,但服务器没有按照预定的计划重新上线。
3、断电。
4、数据库服务器硬盘故障。
功能:
1、复制主要用来做冗余(不是备份的替代)。
2、故障转移。
3、能在副本间均衡读负载。
主从复制:
副本集:最小的副本集由三个节点组成,两个一等的、持久化mongod实例,两者都能作为副本集的主节点,都有完整的数据副本。一个仲裁节点,不复制数据,只是中立观察者,在要求故障转移时帮助选出新的主节点。
副本集依赖于两个基础机制:oplog和“心跳”(heartbeat)。oplog让数据的复制成为可能,而“心跳”则监控健康状况并触发故障转移。
关于oplog:
oplog是一个固定集合,位于每个复制节点的local数据库里,记录了所有对数据的变更。每次客户端向主节点写入数据,就会自动向主节点的oplog里添加一个条目,其中包含了足够的信息来再现数据。一旦写操作被复制到某个从节点上,从节点也会保存一条关于写入的记录。每个oplog条目都由一个BSON时间戳进行标识,所有从节点都使用这个时间戳来追踪它们最后应用的条目。从节点也有自己的一份oplog,假设向副本集的主节点发起写操作,接下来写操作先被记录下来,添加到主节点的oplog里。与此同时,所有从节点复制oplog。因此,当某个从节点准备更新自己时,他做了三件事:首先,查看自己的oplog里最后一条的时间戳;其次,查询主节点oplog里所有大于此时间戳的条目,最后,把那些条目添加到自己的oplog里并应用到自己的库里。也就是说,万一发生故障,任何被提升为主节点的从节点都会有一个oplog,其他从节点能以它为复制源进行复制。从节点使用长轮询(long
polling)立即应用来自主节点oplog的新条目。
相关文章推荐
- Redis基础学习--持久化(数据备份与恢复)、复制、安全、通信协议、管理工具
- Redis的复制功能以及Redis复制机制本身的优缺点以及集群搭建问题
- Redis的复制功能以及Redis复制机制本身的优缺点以及集群搭建问题
- 【redis&&memcached】数据类型、内存管理、数据持久化和集群管理的区别
- redis 持久化 + 主从复制+ 集群
- Redis持久化存储与复制功能简述
- Redis复制与可扩展集群搭建
- Redis关键点(复制与集群)
- Redis复制与可扩展集群搭建 【转】
- Redis复制与可扩展集群搭建
- LessonFifth Redis的持久化功能
- Redis复制与可扩展集群搭建
- 9 MongoDB主从复制和集群
- 《Redis复制与可扩展集群搭建》看后感
- Redis复制与可扩展集群搭建
- Redis核心解读–集群管理工具(Redis-sentinel)
- Hi!欢迎使用一个Dynamo风格的分布式Redis集群分发管理系统WheatRedis - V2EX
- Redis复制与可扩展集群搭建
- Redis复制与可扩展集群搭建
- Redis复制与可扩展集群搭建