Redis内部实现(多机数据库)

1. Redis内部实现

1.1. 多机数据库

主从复制:通过主从数据复制,以解决主数据丢失可以从备那恢复,具体实现见主从复制实现章节。

Sentinel监控:监控主从服务器状态,并当主故障下线后将从升为新主。

集群分片(shard N:根据keyhash值,将keyval存入不同分片节点,实现负载分担。

三者关系:

 

1.1.1. 主从复制

 

RedisReplication的特点和优势:
1)同一个Master可以同步多个Slaves
 2Slave同样可以接受其它Slaves的连接和同步请求,这样可以有效的分载Master的同步压力。因此我们可以将RedisReplication架构视为图结构。
3Master Server是以非阻塞的方式为Slaves提供服务。所以在Master-Slave同步期间,客户端仍然可以提交查询或修改请求。
4Slave Server同样是以非阻塞的方式完成数据同步。在同步期间,如果有客户端提交查询请求,Redis则返回同步之前的数据。
5)为了分载Master的读操作压力,Slave服务器可以为客户端提供只读操作的服务,写服务仍然必须由Master来完成。即便如此,系统的伸缩性还是得到了很大的提高。
6Master可以将数据保存操作交给Slaves完成,从而避免了在Master中要有独立的进程来完成此操作。

1.1.2. Sentinel监控

Sentinel只是一个运行在特殊模式下的Redis服务器,使用不同的命令表。

一般情况下,Sentinel以每101次向被监控的主服务器和从服务器发送INFO命令,当主服务器处于下线状态,或者Sentinel正在对主服务器进行故障迁移操作时,Sentinel向从服务器发送INFO命令的频率会改为每秒1次。

Sentinel只会与主服务器和从服务器建立命令连接和订阅连接,SentinelSentinel之间只创建命令连接。 

1.1.3. 集群分片(shard N)

总共16384slot

案例:某公司集群部署:
1. Redis节点: 8台物理机;每台128G内存;每台机器上8instance
2. Sentienl3台虚拟机

集群方案:

Redis Node由一组Redis Instance组成,一组Redis Instatnce可以有一个Master Instance,多个Slave Instance

章节回顾

命令:cluster MEET <ip> <port>  新增node

        Cluster addslot <slot> [slot ]   node分配slot

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值