您的位置:首页 > 数据库 > Redis

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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: