Redis 分区有什么缺点?

参与11

3同行回答

youki2008youki2008系统架构师DDT
尽管Redis分区到现在为止,so far so good,但是Redis分区有一些致命的缺点,这导致一些Redis功能在分区的环境下并不能很好地工作,我们来看看: 多键操作是不被支持的,比如我们将要批量操作的键被映射到了不同的Redis实例中。 多键的Redis事务是不被支持的。 分区的最小粒度是...显示全部

尽管Redis分区到现在为止,so far so good,但是Redis分区有一些致命的缺点,这导致一些Redis功能在分区的环境下并不能很好地工作,我们来看看:
多键操作是不被支持的,比如我们将要批量操作的键被映射到了不同的Redis实例中。
多键的Redis事务是不被支持的。
分区的最小粒度是键,因此我们不能将关联到一个键的很大的数据集映射到不同的实例。
当应用分区的时候,数据的处理是非常复杂的,比如我们需要处理多个rdb/aof文件,将分布在不同实例的文件聚集到一起备份。
添加和删除机器是很复杂的,例如Redis集群支持几乎运行时透明的因为增加或减少机器而需要做的rebalancing,然而像客户端和代理分区这种方式是不支持这种功能的。
既然有问题,那么就需要解决方案,这个时候Pre-sharding来了

收起
互联网服务 · 2020-04-27
浏览1390
lxuelxue数据库管理员某互联网公司
涉及多个 key 的操作通常不会被支持。 例如你不能对两个集合求交集, 因为他们可能被存储到不同的 Redis 实例(实际上这种情况也有办法, 但是不能直接使用交集指令)。同时操作多个 key, 则不能使用 Redis 事务 .分区使用的粒度是 key ,不能使用一个非常长的排序 key 存储一个数...显示全部

涉及多个 key 的操作通常不会被支持。 例如你不能对两个集合求交集, 因为他们可能被存储到不同的 Redis 实例(实际上这种情况也有办法, 但是不能直接使用交集指令)。

同时操作多个 key, 则不能使用 Redis 事务 .

分区使用的粒度是 key ,不能使用一个非常长的排序 key 存储一个数据集( The partitioning

granularity is the key, so it is not possible to shard a dataset with a single huge key like a very big sorted set ) .

当使用分区的时候, 数据处理会非常复杂, 例如为了备份你必须从不同的 Redis 实例和主机同时收集 RDB / AOF 文件。

分区时动态扩容或缩容可能非常复杂。 Redis 集群在运行时增加或者删除 Redis 节点, 能

做到最大程度对用户透明地数据再平衡,但其他一些客户端分区或者代理分区方法则不支持

这种特性。 然而, 有一种预分片的技术也可以较好的解决这个问题。

收起
互联网服务 · 2020-02-24
浏览1610
Luga LeeLuga Lee系统架构师None
通常来说主要存在以下:(1)、数据处理层面(2)、动态扩容及降级层面(3)、事务处理层面显示全部

通常来说主要存在以下:
(1)、数据处理层面
(2)、动态扩容及降级层面
(3)、事务处理层面

收起
互联网服务 · 2020-02-22
浏览1565

提问者

andyfa
软件开发工程师某证券
擅长领域: 数据库大数据服务器

相关问题

相关资料

相关文章

问题状态

  • 发布时间:2020-02-21
  • 关注会员:4 人
  • 问题浏览:3524
  • 最近回答:2020-04-27
  • X社区推广