为什么 Redis 集群要使用反向代理? 看这篇就明白了!
点击关注公众号,Java干货及时送达
作者:等不到的口琴
链接:www.cnblogs.com/Courage129/p/14351545.html
如果没有反向代理,一台Redis可能需要跟很多个客户端连接:
![](https://filescdn.proginn.com/74d87c16a00c8ee88fb78590f0006ccc/413b39d28bf7520d4f0a5b914c81729b.webp)
如何使用代理?
很简单,将请求连接到调度代理器上,由Proxy负责将请求转发到后面的Redis服务实例,图示:
![](https://filescdn.proginn.com/a48d6ad07568401147202a4cb72cea72/4021780c92b4b83d7e72125a2944bb00.webp)
又有了新的问题,Proxy挂了可咋整?
想成为架构师,这份架构师图谱建议看看,少走弯路。
![](https://filescdn.proginn.com/7ac682f0ada71b573242041bad30efd5/b4b30e054f24fd1c148f21c187d5ea1c.webp)
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
![](https://filescdn.proginn.com/fcd734c7055625b5017b3023a114f563/b0f8c5bfd3d915ebf9ddb880a666e739.webp)
关注Java技术栈看更多干货
![](https://filescdn.proginn.com/e55a4c89966a0026ea955b2aa6f7dda5/da9a7dd4363112d0c0822bf8a5a00fc8.webp)
评论