为什么Redis集群要使用反向代理?

为什么要使用反向代理?

如果没有反向代理,一台Redis可能需要跟很多个客户端连接:

2002319-20210131080526659-119858341

看着是不是很慌?看没关系,主要是连接需要消耗线程资源,没有代理的话,Redis要将很大一部分的资源用在与客户端建立连接上,redis的高可用和可扩展无论是自带的Redis Sentinel还是Redis Cluster都要求客户端进行额外的支持,而目前基本上没有合适的客户端能够做这些事情,客户端来做这些事情也并不合适,它会让维护变得特别困难。

因此在客户端和redis服务端之间加一层代理成了一种理想的方案,代理屏蔽后端Redis实现细节向客户端提供redis服务,可以完美的解决Redis的高可用和扩展性问题,同时代理的引入也使得Redis维护变得更加简单。

于是乎,有了代理:

如何使用代理?

很简单,将请求连接到调度代理器上,由Proxy负责将请求转发到后面的Redis服务实例,图示:

2002319-20210131080732301-1329663942

又有了新的问题,Proxy挂了可咋整?

所以Proxy又需要做集群,甚至前面可以加一层负载均衡,负载均衡嘛,单机也存在单点故障等问题,一个Director肯定不行,搞不好又挂了,所以整一个主备,备机通过KeepAlived来检测主LVS健康状况,出了问题顶上去。

Redis代理插件

Redis代理插件有很多,这儿简单介绍几款

predixy 高性能全特征redis代理,支持Redis Sentinel和Redis Cluster
twemproxy 快速、轻量级memcached和redis代理
codis redis集群代理解决方案
redis-cerberus Redis Cluster代理

代理详细功能对比

特性 predixy twemproxy codis redis-cerberus
高可用 Redis Sentinel或Redis Cluster 一致性哈希 Redis Sentinel Redis Cluster
可扩展 Key哈希分布或Redis Cluster Key哈希分布 Key哈希分布 Redis Cluster
开发语言 C++ C GO C++
多线程
事务 Redis Sentinel模式单Redis组下支持 不支持 不支持 不支持
BLPOP/BRPOP/BLPOPRPUSH 支持 不支持 不支持 支持
Pub/Sub 支持 不支持 不支持 支持
Script 支持load 不支持 不支持 不支持
Scan 支持 不支持 不支持 不支持
Select DB 支持 不支持 支持 Redis Cluster只有一个DB
Auth 支持定义多个密码,给予不同读写及管理权限和Key访问空间 不支持 同redis 不支持
读从节点 支持,可定义丰富规则读指定的从节点 不支持 支持,简单规则 支持,简单规则
多机房支持 支持,可定义丰富规则调度流量 不支持 有限支持 有限支持
统计信息 丰富 丰富 丰富 简单

简单来说,predixy既支持Redis Sentinel也支持Redis Cluster

  • 后端为Redis Sentinel监控的一组Redis,功能完全等同于原始Redis
  • 后端为Redis Sentinel监控的多组Redis,则有部分功能受限
  • 后端为Redis Cluster,功能完全等同于Redis Cluster

__EOF__

本文作者等不到的口琴
本文链接https://www.cnblogs.com/Courage129/p/14351545.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   等不到的口琴  阅读(1577)  评论(0编辑  收藏  举报
编辑推荐:
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?
· 使用C#创建一个MCP客户端
点击右上角即可分享
微信分享提示