谁说 Redis 不能存大 key
本文分享自华为云社区《华为云GaussDB(for Redis)揭秘第18期:谁说Redis不能存大key》,作者: 高斯 Redis 官方博客 。
一、社区版 Redis 的大 key 痛点
GaussDB(for Redis)专家小强最近有点忙,因为很多客户经理都来找他咨询社区版 Redis 的大 key 问题,且一个个都求知欲爆表:
小强一拍大腿:你们还真问对人了!
根据现网经验,生产环境因为大 key 导致的 Redis 事故屡见不鲜,其中典型的有扩容失败、请求阻塞、OOM 宕机等等。早期业务规划不充分、消息队列消费不及时、未及时清理无效数据等原因都可能引入大 key 隐患。
社区版 Redis 大 key 隐患常见于以下三大场景:
内存消耗不均衡,大 key 所在分片有 OOM 风险
扩容时需要搬迁部分数据,大 key 耗时久,会导致访问阻塞甚至数据丢失
删除或过期大 key 时,业务访问被长时间阻塞,甚至导致主从同步中断
社区版 Redis 架构并不适合可靠存储大 key,业界也只能建议预防、拆分或及时清理大 key。从客户视角出发,其实有些场景是需要大 key 的,例如企业 ERP 系统,海量货币汇率存储等。这时即使适当拆分,也避免不了较大 HASH key 存在。
二、华为云 GaussDB(for Redis)的大 Key 解决方案
小强始终认为,好的产品应当尽量把复杂留给自己,把简单留给用户。因此,小强给每一位来咨询大 key 问题的客户经理都安利了 better 解决方案——
使用华为云企业级 KV 数据库 GaussDB(for Redis)
大 key 场景下,GaussDB(for Redis)究竟比社区版 Redis 优秀在哪?下面从 3 个角度深度分析:
1. 高斯 Redis 支持大 key 存储,不用担心分片 OOM
社区版 Redis 存储大 key 会导致分片内存消耗不均,随着集群整体数据量水位提升,大 key 所在分片随时有 OOM 风险。
高斯 Redis 支持大 key 可靠存储,且不会导致分片 OOM。需要注意的是,虽然高斯 Redis 适合用来可靠存储大 key,但从网络链路角度考虑,业务应避免对大 key 执行诸如 hgetall 等风险命令。
2. 高斯 Redis 在大 key 场景中也支持秒级无损扩容
社区版 Redis 在扩容时,由于要搬迁数据,此时画风是这样的:
图:社区版 Redis 在大 key 场景扩容,风险高
可以总结为:有大 key,开源 Redis 请谨慎扩容!
高斯 Redis 支持秒级扩容,并支持升规格、加节点、加存储容量 3 种手段灵活扩容,运维体验极佳。
图:高斯 Redis 在大 key 场景可安全扩容
从上图可以看出,高斯 Redis 采用计算、存储分离架构,扩容时不必搬迁任何数据,因此速度、稳定性都远超社区版 Redis。有大 key,高斯 Redis 可以放心扩容!
3. 高斯 Redis 删除/过期大 key 时,业务 0 阻塞
社区版 Redis 大 key 的删除/过期都会导致访问严重阻塞。实测删除/过期一个大 hash key(包含 1000w 个元素),社区版 Redis 访问阻塞长达整整 14 秒。
图:社区版 Redis 在大 key 删除场景阻塞业务访问
虽然社区版 Redis 提供了“异步”的 unlink 命令能够一定程度上缓解大 key 阻塞问题,但 unlink 并非严格异步,例如对于 zset 类型(skiplist 编码)以及全部 string key 都只能阻塞删除,风险不可控。
高斯 Redis 从根本上解决了大 key 删除/过期操作隐患。在高斯 Redis 中,对任何数据执行删除/过期,都是立刻执行成功且 0 阻塞。这是由于底层采用了真正的“标记删除”,因此完全不影响业务访问。实测删除/过期一个大 hash key(包含 1000w 个元素),高斯 Redis 仅毫秒级。
三、总结
根据上述对比评测,可看出相比社区版 Redis 的实际表现,高斯 Redis 更适用于大 key 的可靠存储场景。除了能解决业务大 key 痛点外,高斯 Redis 在稳定性、可靠性、安全性等方面也有全面的提升。
华为伙伴暨开发者大会 2022 火热来袭,重磅内容不容错过!
【精彩活动】
勇往直前·做全能开发者→12 场技术直播前瞻,8 大技术宝典高能输出,还有代码密室、知识竞赛等多轮神秘任务等你来挑战。即刻闯关,开启终极大奖!点击踏上全能开发者晋级之路吧!
【技术专题】
未来已来,2022 技术探秘→华为各领域的前沿技术、重磅开源项目、创新的应用实践,站在智能世界的入口,探索未来如何照进现实,干货满满点击了解
版权声明: 本文为 InfoQ 作者【华为云开发者联盟】的原创文章。
原文链接:【http://xie.infoq.cn/article/6eca17bf6e306aafdd678d5f6】。文章转载请联系作者。
评论