Rumah  >  Artikel  >  pangkalan data  >  redis集群和分布式区别

redis集群和分布式区别

(*-*)浩
(*-*)浩asal
2019-11-22 14:24:474066semak imbas

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数据库使用入门教程栏目进行学习!

Atas ialah kandungan terperinci redis集群和分布式区别. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel sebelumnya:什么是redis读写分离Artikel seterusnya:jedis和redistemplate区别