redis各种部署模式

一、主从

主从模式优缺点
优点: 主从结构具有读写分离,提高效率、数据备份,提供多个副本等优点。
不足: 最大的不足就是主从模式不具备自动容错和恢复功能,主节点故障,集群则无法进行工作,可用性比较低,从节点升主节点需要人工手动干预。

二、哨兵

哨兵模式优缺点
优点
哨兵模式是基于主从模式的,解决可主从模式中master故障不可以自动切换故障的问题。
不足-问题
1、是一种中心化的集群实现方案:始终只有一个Redis主机来接收和处理写请求,写操作受单机瓶颈影响。
2、集群里所有节点保存的都是全量数据。数据量过大时,主从同步严重影响master的性能。
3、Redis主机宕机后,哨兵模式正在投票选举的情况之外,因为投票选举结束之前,谁也不知道主机和从机是谁,此时Redis也会开启保护机制,禁止写操作,直到选举出了新的Redis主机。

单台服务器的容量不足或者进行并发写操作的用户过多等情况下可以使用多台Redis集群的方式缓解压力,以下是集群的模式

三、客户端分片

客户端分片是把分片的逻辑放在Redis客户端实现,(比如:jedis已支持RedisSharding功能,即ShardedJedis),通过Redis客户端预先定义好的路由规则(使用一致性哈希),把对Key的访问转发到不同的Redis实例中,查询数据时把返回结果汇集
优点:客户端sharding技术使用hash一致性算法分片的好处是所有的逻辑都是可控的,不依赖于第三方分布式中间件。服务端的Redis实例彼此独立,相互无关联,每个Redis实例像单服务器一样运行,非常容易线性扩展,系统的灵活性很强。
不足:扩缩容自己做数据迁移,如果分片规则有变动,需要所有客户端改代码

四、代理分片

通过中间件的形式,Redis客户端把请求发送到proxy,proxy根据路由规则发送到正确的Redis实例,最后proxy把结果汇集返回给客户端。跟客户端分片实质上没有什么分别(一个正向一个反向),只是以中间件的角色去完成,解耦。
优点:客户端代码少,客户端像连接Redis实例一样连接proxy,不需要改任何的代码逻辑。
不足:扩缩容自己做数据迁移,多了一个角色有性能消耗

五、Redis Cluster

集群完全去中心化,采用多主多从;redis 数据分片使用的是hash槽, redis集群有16384个哈希槽,每个Key通过CRC16校验后对16384取模来决定放置哪一个槽。
当存取redis key时候,redis会根据CRC16算法得到一个结果,然后把结果和16384求余,通过这个值去对应得节点获取数据。
这个时候,应用客户端实际上只需要连接其中任意一个节点即可,然后Redis Cluster 中每个节点都保存了其他节点得槽信息。这样当存取key计算完槽之后,通过保存槽信息从配置中获取节点信息,然后再去对应得节点获取数据。
优点:扩缩容由框架实现数据迁移,去中心化不需要其他角色来辅助管理
缺点:不支持多键操作、lua脚本复杂需要自己确定节点信息、不支持lua脚本的原子性.

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值