集群的限制
- 对 key 的批量操作支持有限:
mget
,mset
操作的 key 必须在一个 slot; - 对 key 的事务(分布式事务)和 LUA 的支持有限:操作的 key 必须在一个节点上;
- key 是数据分区最小的粒度,不支持 bigkey 分区;
- 不支持多个数据库,集群模式下只有一个 db0;
- 复制只支持一层,不支持树形的复制结构;
分布式 Redis 不一定好
- Redis CLuster 能满足容量和性能的扩展,但很多业务不需要;
- Redis CLuster 在大多数时间,客户端性能会降低;
- 很多命令无法跨节点使用,比如:
mget
keys
scan
flush
sinter
; - LUA 和事务无法跨节点使用;
- 客户端维护复杂;
- 很多场景 Redis Sentinel 已经足够好;