揭秘华为云GaussDB(for Redis)丨大key治理

揭秘,华为,gaussdb,for,redis,key,治理 · 浏览次数 : 28

小编点评

**华为云GaussDB(for Redis)揭秘第31期:大key治理** **作者: 高斯Redis官方博客** **大key治理的重要性** 大key是Redis存储池中的一个特殊数据结构,它用于存储键值对数据。在Redis中,大key的出现会导致性能下降,因为它会在存储和读取操作中消耗更多的资源。 **大key的常见问题** * CPU占用率高 * 倾斜 * 扩容过程耗时久 **GaussDB(for Redis)的大Key诊断和预警** GaussDB(for Redis)提供以下大Key诊断和预警特性: * 10+监控指标,提供“大Key侦探”的能力 * 大Key监控预警分享两个真实案例 **大Key诊断的指标** * 单个请求回包的最大元素个数 * 单个请求携带的最大参数个数 **大Key预警的场景** * 业务周期性执行“lrange 0 -1”获取list key的所有元素 * 业务长期稳定运行,有一天有新组件上线,线上业务开始不断超时 **大Key的解决方案** GaussDB(for Redis)支持秒级无感扩容,无需搬迁数据。因此,大Key的扩容过程不受其影响。 **结论** GaussDB(for Redis)提供了一个可靠的解决方案以解决大Key问题。该产品提供大Key诊断和预警特性,以及在遇到大Key问题时提供解决方案。

正文

本文分享自华为云社区《华为云GaussDB(for Redis)揭秘第31期:大key治理》,作者: 高斯Redis官方博客。

从DBA的视角看,大Key无疑是引起Redis线上问题的常见原因。为了解决大Key隐患,业务首先要遵守合理的开发规范,减少大Key的产生和访问依赖。但有时大Key是在程序运行过程中悄悄产生的,让人防不胜防。因此,一款可随时在线诊断,且能主动预警,防患于未然的Redis服务产品显得尤为重要。

GaussDB(for Redis):支持大Key在线诊断

GaussDB(for Redis)采用计算、存储分离的高可靠架构,每个计算节点上都部署有后台任务。GaussDB(for Redis)通过后台任务持续检测分析存储池中的大key情况,用户执行命令时直接取结果,不会影响线上业务,跟业界阻塞式全量扫描方式相比,更安全。

cke_221.png

用户执行bigkeys命令后,将直接从节点上获取“答案”,不用全库扫描引起不必要的性能影响。

cke_222.png

此外,GaussDB(for Redis)支持用户自定义大key标准,比如大于1MB的string、大于10000个元素的hash类型等。该功能一经推出,收获了很多客户和DBA小伙伴的认可及点赞。

GaussDB(for Redis):支持大key监控预警

分享两个真实案例:

1、业务周期性执行“lrange 0 -1”获取list key的所有元素。但由于程序bug,业务也同时在长期、缓慢地向这个key中持续追加,导致key越来越长。直到线上业务出问题,几经波折,才发现了这个危险的大Key。

2、业务长期稳定运行,有一天有新组件上线,线上业务开始不断超时。几经排查,发现新组件对Redis执行hmset f1 v1 f2 v2……,一条写入命令携带了长达2万个参数,严重影响了生产业务。

从DBA的角度,这类问题需要一个“大Key侦探”时刻盯防,一旦有对大Key的高危操作,立刻主动预警。

GaussDB(for Redis)设计了10+监控指标,提供“大Key侦探”的能力,例如:单个请求回包的最大元素个数(识别lrange 0 -1操作大key引起阻塞的场景)、单个请求携带的最大参数个数(识别hmset上万元素批导引起阻塞的场景)……DBA只需要根据多年经验,将这类指标订阅告警,即可在第一时间“抓住大Key案发现场”,将风险扼杀于萌芽状态。

GaussDB(for Redis):对大Key的承载能力更强

即使在大Key存在的一些业务场景,GaussDB(for Redis)的表现也是远优于开源Redis的。下面将介绍大Key经常引起的一些问题:

1、大key引发了CPU 100%,阻塞生产业务

在开源Redis中,大key容易引起CPU占用100%,使生产业务受损,引起线上问题。这是因为开源Redis本身就是单线程,尤其在这种比较脆弱的架构下使用大key,更容易引起线程阻塞,从而影响整个实例。

GaussDB(for Redis)的多线程架构天然就对大key更友好,不会有这个问题困扰。即使单个线程被个别大Key影响,整个GaussDB(for Redis)实例包含数十、上百个线程,整体业务基本都不会受到干扰。

2、大key因个别分片带宽高,被Redis频繁“流控”

目前市面上有一些开源Redis是基于一个大的容器混合部署很多租户的Redis进程,但在这种架构下,为了避免一个客户的Redis影响其他客户,往往会对客户的Redis进程进行流量控制,当某个客户业务中对大key有较为频繁的操作时,很容易触发给客户设定的该租户的带宽阈值并触发流控,从而导致线上业务受损。

相比之下,GaussDB(for Redis)的每个分片都是一个独立的容器,是客户的独享资源,更可靠,连接数、带宽等资源不设主动流控,尤其是节点带宽资源的“天花板”非常高。

3、大key导致倾斜,分片内存占用不均匀

开源Redis集群中,存储大key会导致内存空间不均匀、消耗不均衡,大key所在分片有OOM风险。

cke_223.png

GaussDB(for Redis)采用高性能存储池,不会对某个节点分片造成数据量的倾斜,支持大key可靠存储,不会导致分片OOM。

cke_224.png

4、Redis扩容时要搬迁数据,大key总引起问题

开源Redis扩容时,由于涉及数据跨片搬迁,扩容过程耗时久,存在访问阻塞的风险。如图所示,因此开源Redis在有大key的情况下,扩容必须谨慎!

cke_225.png

GaussDB(for Redis)支持秒级无感扩容,不论扩容量,还是扩CPU,都不需要搬迁数据,因此也不受大Key影响,运维体验极佳。

cke_226.png

本文介绍了GaussDB(for Redis)的大Key诊断、大Key预警特性,以及在大Key场景下如何解决开源Redis的稳定性痛点,为客户提供了高效可靠的大Key解决方案。未来,GaussDB(for Redis)将持续致力于开发更多好用的企业级特性,帮助客户轻松运维,高效开发。

附录

  • 本文作者:

华为云数据库GaussDB(for Redis)团队

  • 杭州/西安/深圳简历投递:

yuwenlong4@huawei.com

  • 更多产品信息,欢迎访问官方博客:

bbs.huaweicloud.com/blogs/248875

 

点击关注,第一时间了解华为云新鲜技术~

 

与揭秘华为云GaussDB(for Redis)丨大key治理相似的内容:

揭秘华为云GaussDB(for Redis)丨大key治理

GaussDB(for Redis)提供了完备的大Key解决方案,支持大Key在线诊断、监控预警、承载力强等能力,弥补了开源Redis在大key问题上的不足,让DBA如虎添翼。

聊聊游戏业务怎么用高斯Redis

摘要:其实游戏客户对数据库的诉求是很明确的,数据库应当“放心存放心用”。 本文分享自华为云社区《华为云GaussDB(for Redis)揭秘第27期:聊聊游戏业务怎么用高斯Redis》,作者:高斯Redis官方博客。 华为云数据库团队是比较重视技术洞察的,对客户真实的业务场景也比较看重。年初出差了

云图说丨云数据库GaussDB(for MySQL)事务拆分大揭秘

摘要:数据库代理提供事务拆分的功能,能够将事务内写操作之前的读请求转发到只读节点,降低主节点负载。 本文分享自华为云社区《【云图说】第270期 云数据库GaussDB(for MySQL)事务拆分大揭秘》,作者:阅识风云。 默认情况下,云数据库GaussDB(for MySQL)数据库代理会将事务内

海量数据运维要给力,GaussDB(for Cassandra)来助力

摘要:应用运维管理平台(AOM)和Cassandra是两个不可分割的组成部分,它们共同构成了一个高效的解决方案,可以帮助企业在应用运维业务上取得巨大的优势。在这篇文章中,我们将介绍AOM和Cassandra的优势和特点,揭晓它们如何为企业保持市场竞争力的秘密。 本文分享自华为云社区《海量数据运维要给

分布式数据库架构路线大揭秘

摘要:这些年大家都在谈分布式数据库,各大企业也纷纷开始做数据库的分布式改造。那么所谓的分布式数据库是什么?采用什么架构,优势在哪?为什么越来越多企业选择它?我们不妨一起来深入了解下。 本文分享自华为云社区《GaussDB分布式架构大揭秘》,作者:华为云数据库首席架构师 冯柯。 这些年大家都在谈分布式

DTSE Tech Talk 第18期丨统计信息大揭秘,数仓SQL执行优化之密钥

摘要:华为云EI DTSE技术布道师王跃,针对统计信息对于查询优化器的重要性,GaussDB(DWS)最新版本的analyze当前能力,与开发者和伙伴朋友们展开交流互动,帮助开发者快速上手使用统计信息的自动收集功能。 在本期《统计信息大揭秘——SQL执行优化之密钥》的主题直播中,我们邀请到华为云EI

DTSE Tech Talk | 第9期:EiPaaS驱动企业数字化转型

摘要: 揭秘华为企业集成新模式。 本期直播详解 组装式概念解析 EiPaaS的核心技术能力 华为实践经验分享 EiPaaS未来的技术趋势 直播讲师:华为云PaaS DTSE布道师 傅翌伟 tips:EiPaaS全称:Enterprise integration Platform as a Servi

DTT第7期直播回顾 | 低代码应用构建流程和适用场景,与你想的一样吗?

摘要:本期直播主题是《揭秘华为云低代码技术微认证》,向开发者们讲述低代码的发展历程,介绍华为低代码平台应用魔方AppCube的开发能力,解读华为低代码的认证和学习体系 本期直播详解 本期直播主题是《揭秘华为云低代码技术微认证》,华为云PaaS服务产品部资深专家董鑫武向开发者们讲述低代码的发展历程,介

华为扫地僧:揭秘IoT+鸿蒙帮助企业突围物联网安全问题

摘要:通过介绍物联网安全架构以及华为云IoT+鸿蒙端边云协同安全实践,意在通过华为云IoT+鸿蒙帮助企业解决物联网安全问题。 在本期#码出未来,与你同行#HDC.Cloud2023华为云开发者社区系列直播之《华为扫地僧揭秘IoT+鸿蒙帮助企业突围物联网安全问题》的主题直播中,华为云IoT 资深架构师

揭秘Karmada百倍集群规模多云基础设施体系

摘要:本文结合Karmada社区对大规模场景的思考,揭示Karmada稳定支持100个大规模集群、管理超过50万个节点和200万个Pod背后的原理 本文分享自华为云社区《Karmada百倍集群规模多云基础设施体系揭秘》,作者: 云容器大未来 。 随着云原生技术在越来越多的企业和组织中的大规模落地,如