Redis内部实现(多机数据库)
2016-03-24 00:08
483 查看
1. Redis内部实现
1.1. 多机数据库
主从复制:通过主从数据复制,以解决主数据丢失可以从备那恢复,具体实现见主从复制实现章节。Sentinel监控:监控主从服务器状态,并当主故障下线后将从升为新主。
集群分片(shard N):根据key的hash值,将key-val存入不同分片节点,实现负载分担。
三者关系:
1.1.1. 主从复制
RedisReplication的特点和优势:
(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中要有独立的进程来完成此操作。
1.1.2. Sentinel监控
Sentinel只是一个运行在特殊模式下的Redis服务器,使用不同的命令表。一般情况下,Sentinel以每10秒1次向被监控的主服务器和从服务器发送INFO命令,当主服务器处于下线状态,或者Sentinel正在对主服务器进行故障迁移操作时,Sentinel向从服务器发送INFO命令的频率会改为每秒1次。
Sentinel只会与主服务器和从服务器建立命令连接和订阅连接,Sentinel和Sentinel之间只创建命令连接。
1.1.3. 集群分片(shard N)
总共16384个slot。案例:某公司集群部署:
1. Redis节点: 8台物理机;每台128G内存;每台机器上8个instance
2. Sentienl:3台虚拟机
集群方案:
Redis Node由一组Redis Instance组成,一组Redis Instatnce可以有一个Master
Instance,多个Slave Instance
章节回顾
命令:cluster MEET <ip> <port> 新增node
Cluster addslot <slot> [slot …] 为node分配
944f
slot
相关文章推荐
- 安装redis
- CentOS 6.5 install redis 3.0.7
- redis事务
- redis 的setnx命令
- redis日志级别
- Redis内部实现(单机数据库)
- redis pool config的配置参数
- 详解 Redis 应用场景及应用实例
- Redis 数据库迁移
- redis3.0 运维(动态增加、删除、重新分配节点)
- redis应用场景
- php安装redis
- redis安装及redis数据类型
- redis的管理工具
- Redis 学习 ---- 9.数据库
- Puppet模块(九):redis模块
- redis学习总结(未完成)
- mac下,redis的安装与配置
- Redis介绍
- redis 发布订阅