redis集群与redis分布式的区别是什么?可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。
分布式是指将业务系统进行拆分,即分布式的每一个节点都是实现不同的功能。
集群是一组协同工作的服务实体,用以提供比单一服务实体更具扩展性与可用性的服务平台。
简单说,分布式是以缩短单个任务的执行时间来提升效率的,而集群则是通过提高单位时间内执行的任务数来提升效率。
Redis Cluster 集群模式通常具有高可用、可扩展性、分布式、容错等特性。Redis 分布式方案一般有两种:
客户端分区方案
客户端就已经决定数据会被存储到哪个 redis 节点或者从哪个 redis 节点读取数据。其主要思想是采用哈希算法将 Redis 数据的 key 进行散列,通过 hash 函数,特定的 key会映射到特定的 Redis 节点上。
客户端分区方案的代表为 Redis Sharding,Redis Sharding 是 Redis Cluster 出来之前,业界普遍使用的 Redis多实例集群方法。Java 的 Redis 客户端驱动库 Jedis,支持 Redis Sharding 功能,即 ShardedJedis 以及结合缓存池的 ShardedJedisPool。
优点
不使用第三方中间件,分区逻辑可控,配置简单,节点之间无关联,容易线性扩展,灵活性强。
缺点
客户端无法动态增删服务节点,客户端需要自行维护分发逻辑,客户端之间无连接共享,会造成连接浪费。
代理分区方案
客户端发送请求到一个代理组件,代理解析客户端的数据,并将请求转发至正确的节点,最后将结果回复给客户端。
优点:简化客户端的分布式逻辑,客户端透明接入,切换成本低,代理的转发和存储分离。 缺点:多了一层代理层,加重了架构部署复杂度和性能损耗。
代理分区主流实现的有方案有 Twemproxy 和 Codis。
Twemproxy
Twemproxy 也叫 nutcraker,是 twitter 开源的一个 redis 和 memcache 的中间代理服务器程序。Twemproxy 作为代理,可接受来自多个程序的访问,按照路由规则,转发给后台的各个 Redis 服务器,再原路返回。Twemproxy 存在单点故障问题,需要结合 Lvs 和 Keepalived 做高可用方案。
优点:应用范围广,稳定性较高,中间代理层高可用。 缺点:无法平滑地水平扩容/缩容,无可视化管理界面,运维不友好,出现故障,不能自动转移。
Codis
Codis 是一个分布式Redis 解决方案,对于上层应用来说,连接 Codis-Proxy 和直接连接原生的Redis-Server 没有的区别。Codis 底层会处理请求的转发,不停机的进行数据迁移等工作。Codis 采用了无状态的代理层,对于客户端来说,一切都是透明的。
优点
实现了上层 Proxy 和底层 Redis 的高可用,数据分片和自动平衡,提供命令行接口和 RESTful API,提供监控和管理界面,可以动态添加和删除Redis 节点。
缺点
部署架构和配置复杂,不支持跨机房和多租户,不支持鉴权管理。
看完上述内容,你们对redis集群与redis分布式的区别有进一步的了解吗?如果还想了解更多相关内容,欢迎关注亿速云行业资讯频道,感谢各位的阅读。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。