前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Redis案例:Redis Cluster分片数据不均匀

Redis案例:Redis Cluster分片数据不均匀

原创
作者头像
brightdeng@DBA
修改2020-08-28 21:42:34
4.5K0
修改2020-08-28 21:42:34
举报

前言

对于分布式系统来说,整个集群的存储容量和处理能力,往往取决于集群中容量最大或响应最慢的节点。因此在前期进行系统设计和容量规划时,应尽可能保证数据均衡。但是,在生产环境的业务系统中,由于各方面的原因,数据倾斜的现象还是比较常见的。Redis Cluster也不例外,究其原因主要包括两个:一个是不同分片间key数量不均匀,另一个是某分片存在bigkey;接下来我们看看,在腾讯云数据库redis中,如何及时发现和解决分片数据不均匀的问题。

问题排查

(1)我们可以通过以下命令生成一些bigkey,以模拟分片数据不均匀

代码语言:javascript
复制
# redis-benchmark -h xxx -p xxx -a xxx -c 10 -n 100 -r 50 -d 104857600 -t set 

(2)在 控制台-节点管理 界面,查看key数量和容量,确定是否存在数据不均匀?是什么原因导致?从监控数据来看,本集群其中1个分片容量约2GB,其它2个分片容量均在50MB左右,存在严重数据倾斜问题;不过,3个分片的key数量均在15w左右,可以排除是key数量分布不均匀导致

(3)在 控制台-系统监控-Key分析 界面,确定存在哪些bigkey?占用大小是多少?从监控数据来看,本集群存在多个100MB左右的bigkey

(4)登录Redis,通过cluster slots/cluster keyslot xxx命令,确定bigkey具体分布在哪个分片?从输出结果来看,bigkey所在槽位均位于0~5460范围内,属于同一个分片

解决方案

对于分片间key数量不均匀,导致数据倾斜问题,可考虑以下方案(可能性小):

(1)垂直扩容:扩容单分片内存容量(不推荐)

(2)水平扩容:扩容分片数,以把key打散到不同分片(推荐)

对于某分片存在bigkey,导致数据倾斜问题,可考虑以下方案(可能性大):

(1)垂直扩容:扩容单分片内存容量(不推荐)

(2)对bigkey进行改造,拆分成多个key打散(推荐)

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 问题排查
  • 解决方案
相关产品与服务
云数据库 Redis
腾讯云数据库 Redis(TencentDB for Redis)是腾讯云打造的兼容 Redis 协议的缓存和存储服务。丰富的数据结构能帮助您完成不同类型的业务场景开发。支持主从热备,提供自动容灾切换、数据备份、故障迁移、实例监控、在线扩容、数据回档等全套的数据库服务。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档