Redis集群为什么要使用反向代理?阅读本文以了解。可能需要联系很多客户:是不是看起来很慌张?没关系,主要是连接需要消耗线程资源。如果没有代理,Redis将使用很大一部分资源与客户端建立连接。Redis的高可用和可扩展性无论是内置的RedisSentinel还是RedisCluster都需要客户端额外的支持,目前基本上没有合适的客户端可以做这些事情,也不适合客户端做这些事情.这将使维护变得非常困难。因此,在客户端和redis服务器之间加一层代理是一个比较理想的方案。proxy屏蔽了后端Redis的实现细节,为客户端提供redis服务,可以完美解决Redis的高可用和扩展性问题。Proxy的引入也让Redis的维护变得更加简单。那么,就有了代理:如何使用代理呢?很简单,将请求连接到调度代理,Proxy负责将请求转发给后续的Redis服务实例。图解:出现新问题,Proxy可以挂了怎么回事?所以Proxy需要做集群,甚至可以在前面加一层负载均衡。对于负载均衡,也存在单机单点故障等问题。备机使用KeepAlived检测主LVS的健康状态,如果有问题会补上。Redis代理插件Redis代理插件有很多,这里简单介绍几款predixy高性能全功能redis代理,支持RedisSentinel和RedisClusterWemproxy快速,轻量级memcached和redis代理codisRedis集群代理解决redis-cerberusRedisClusterproxy代理详细功能比较特性predixytwemproxycodisredis-cerberus高可用RedisSentinel或RedisClusterConsistencyhashingRedisSentinelRedisClusterScalableKeyhashdistributionorRedisClusterKeyhashdistributionKeyhashdistributionRedisCluster开发语言C++CGOC++Multithreading是否是单Redis组下的事务RedisSentinel模式Supported否Supported不支持BLPOP/BRPOP/BLPOPRPUSH不支持不支持Pub/Sub不支持不支持脚本不支持不支持扫描不支持不支持扫描不支持不支持不支持不支持SelectDB支持不支持RedisCluster只有一个DBAuth支持定义多个密码,赋予不同的读写和管理权限和Key访问空间不支持同redis不支持读取从节点支持,可以定义丰富规则读取指定从节点不支持,简单规则支持,简单规则支持多机房支持,可以定义丰富的规则调度流量不支持有限支持有限支持丰富丰富的统计信息简单简单,predixy同时支持RedisSentinel和RedisClusterbackend,用于RedisSentinel监控一组Redis,功能完全等价RedisSentinel监控的多组Redis的原始Redis后端,部分功能受限的后端是RedisCluster,功能完全等同于RedisCluster。Java面试题及答案(2022最新版)2.精彩!Java协程来了。..3.SpringBoot2.x教程,太全面了!4.20w程序员红包封面,快拿。..5.《Java开发手册(嵩山版)》最新发布,赶快下载吧!感觉不错,别忘了点赞+转发!
