0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

GaussDB(for Redis) 特性揭秘:大 key 治理

jf_94205927 来源:jf_94205927 作者:jf_94205927 2024-03-28 22:06 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

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

作为由华为云精心打造的企业级 Redis,GaussDB(for Redis)提供了完备的大 Key 解决方案,支持大 Key 在线诊断、监控预警、承载力强等能力,让 DBA 如虎添翼。

GaussDB(for Redis)

支持大 Key 在线诊断

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

wKgZomYFeOCAed07AAI8IiCcEsM153.png

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

wKgZomYFeOuASaplAARdBFoUhmE077.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 风险。

wKgaomYFePeAD17CAAK7QGdY_C0279.png

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

wKgaomYFeQOAY7nQAAQi8So7m3Q466.png

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

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

wKgaomYFeSuAOiNMAAQlTIEv-MU291.png

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

wKgZomYFeR2AANsSAATJrsXY5L0225.png

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

审核编辑 黄宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 开源
    +关注

    关注

    3

    文章

    4348

    浏览量

    46445
  • DBA
    DBA
    +关注

    关注

    0

    文章

    23

    浏览量

    8144
  • Redis
    +关注

    关注

    0

    文章

    394

    浏览量

    12251
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    Redis应用监控指标大盘点

    Redis作为高性能内存数据库,广泛应用于缓存、会话存储、消息队列等场景。对Redis运行状况的有效监控,是保障业务稳定性的关键。本文的目的是帮助运维工程师建立完整的Redis监控知识体系,讲解需要监控哪些指标、如何采集这些指标
    的头像 发表于 04-09 10:07 169次阅读

    全方位对比:Redis能取代MySQL吗?看完这篇你就懂了

    Redis能不能取代MySQL?答案很明确:不能取代,但可以互补。
    的头像 发表于 04-07 10:50 181次阅读
    全方位对比:<b class='flag-5'>Redis</b>能取代MySQL吗?看完这篇你就懂了

    Redis哨兵模式的自动故障检测与主从切换实战

    Redis 主从复制解决了读扩展和数据冗余问题,但主节点故障时需要人工介入切换,这在生产环境中是不可接受的。Sentinel(哨兵)模式在主从架构之上增加了自动故障检测和故障转移能力,是 Redis 高可用的标准方案之一。
    的头像 发表于 02-27 11:05 282次阅读

    守护企业“电力健康”,安科瑞电能质量治理方案揭秘

    的上市公司,提供了专业的“诊疗”方案。 其核心在于**“精准监测”与“动态治理”** 结合。通过APView500等在线监测装置,可对电压暂降、谐波等数十项指标进行毫秒级精准捕捉与记录。 治理层面,安科瑞拥有全系列产品: 有源电力滤波器:
    的头像 发表于 01-13 13:34 160次阅读
    守护企业“电力健康”,安科瑞电能质量<b class='flag-5'>治理</b>方案<b class='flag-5'>揭秘</b>

    应用 I KEY按键接口静电防护方案

    一、应用背景在日常生活中,KEY按键是非常常见的输入设备之一,很多应用都有它的身影,包括手机、笔记本电脑、汽车等。当用户按下KEY按键后,电路的电平状态会发生改变,随着这个改变被检测到后,其他电路或
    的头像 发表于 12-22 13:36 421次阅读
    应用 I <b class='flag-5'>KEY</b>按键接口静电防护方案

    如何评估谐波治理措施的效果?

    评估谐波治理措施的效果,需围绕 “ 合规性、设备保护、经济性、稳定性 ” 四大核心目标,通过 “数据对比、设备监测、经济核算、长期跟踪” 多维度验证,确保治理后谐波含量符合国标要求,且切实减少谐波
    的头像 发表于 10-14 17:04 1109次阅读

    Redis Sentinel和Cluster模式如何选择

    在我十年的运维生涯中,见过太多团队在Redis集群方案选择上踩坑。有的团队盲目追求"高大上"的Cluster模式,结果运维复杂度爆表;有的团队死守Sentinel不放,最后扩展性成了瓶颈。今天,我想通过这篇万字长文,把我在生产环境中积累的经验全部分享给你。
    的头像 发表于 09-08 09:31 764次阅读

    Redis集群部署配置详解

    Redis集群是一种分布式Redis解决方案,通过数据分片和主从复制实现高可用性和横向扩展。集群将整个数据集分割成16384个哈希槽(hash slots),每个节点负责一部分槽位。
    的头像 发表于 07-17 11:04 1177次阅读

    Redis集群部署与性能优化实战

    Redis作为高性能的内存数据库,在现代互联网架构中扮演着关键角色。作为运维工程师,掌握Redis的部署、配置和优化技能至关重要。本文将从实战角度出发,详细介绍Redis集群的搭建、性能优化以及监控运维的核心技术。
    的头像 发表于 07-08 17:56 1032次阅读

    比亚迪 · 超级e平台 · 技术方案的全面揭秘 | 第三曲: 30000转驱动电机 · 12项核心技术揭秘

    比亚迪 · 超级e平台 · 技术方案的全面揭秘 | 第三曲: 30000转驱动电机 · 12项核心技术揭秘
    的头像 发表于 06-08 07:20 2576次阅读
    比亚迪 · 超级e平台 · 技术方案的全面<b class='flag-5'>揭秘</b> | 第三曲: 30000转驱动电机 · 12项核心技术<b class='flag-5'>揭秘</b>

    【经验分享】在Omni3576上编译Redis-8.0.2源码,并安装及性能测试

    本文首先介绍Redis是什么,然后介绍如何在Omni3576上编译Redis-8.0.2源码,以及从源码编译、安装Redis,最后介绍如何在Omni3576上运行Redis性能测试,并
    的头像 发表于 06-05 08:05 1091次阅读
    【经验分享】在Omni3576上编译<b class='flag-5'>Redis</b>-8.0.2源码,并安装及性能测试

    【幸狐Omni3576边缘计算套件试用体验】Redis最新8.0.2版本源码安装及性能测试

    本文首先介绍Redis是什么,然后介绍如何在Omni3576上编译Redis-8.0.2源码,以及从源码编译、安装Redis,最后介绍如何在Omni3576上运行Redis性能测试,并
    发表于 06-03 01:28

    HarmonyOS5云服务技术分享--云缓存快速上手指南

    大家好,今天我们来聊聊如何快速上手华为AppGallery Connect(AGC)的云缓存服务。作为一款基于Serverless架构的Key-Value型缓存服务,它不仅能自动弹性伸缩,还能免去运
    发表于 05-22 18:37

    Redis 再次开源!

    “  Redis 现已采用 AGPLv3 开源许可证。  ” Redis CEO 的 Blog 以下是 Redis CEO Rowan Trollope 的 Blog: 像 AWS 和 GCP 这样
    的头像 发表于 05-06 18:26 1066次阅读

    如何获取 OpenAI API Key?API 获取与代码调用示例 (详解教程)

    OpenAI API Key 获取与使用详解:从入门到精通 OpenAI 正以其 GPT 和 DALL-E 等先进模型引领全球人工智能创新。其 API 为开发者和企业提供了强大的 AI 能力集成途径
    的头像 发表于 05-04 11:42 1.9w次阅读
    如何获取 OpenAI API <b class='flag-5'>Key</b>?API 获取与代码调用示例 (详解教程)