6

本文涉及的产品
云数据库 Redis 版,社区版 2GB
推荐场景:
搭建游戏排行榜
云原生内存数据库 Tair,内存型 2GB
云数据库 Redis 版,经济版 1GB 1个月
简介: 6

Redis内置命令
通过Redis内置命令对目标Key进行分析,可以使用风险较低的命令来查询目前Key的字节数、列表长度或成员数量

STRING类型:执行STRLEN命令,返回对应Key的value的字节数。

LIST类型:执行LLEN命令,返回对应Key的列表长度。

HASH类型:执行HLEN命令,返回对应Key的成员数量。

SET类型:执行SCARD命令,返回对应Key的成员数量。

ZSET类型:执行ZCARD命令,返回对应Key的成员数量。

STREAM类型:执行XLEN命令,返回对应Key的成员数量。

注意!!!

DEBUG OBJECT与MEMORY USAGE命令在执行时需占用较多资源,且时间复杂度为O(N),有阻塞Redis实例的风险,不建议使用。

大Key优化
业务侧 -- 根本
业务侧优先考虑避免大key设计,不要什么都往里放,仅仅缓存必要的数据字段

拆分 分片
例如将含有数万成员的一个HASH Key拆分为多个HASH Key,并保证每个Key的成员数量在合理范围。在Redis集群架构中,拆分大Key能对数据分片间的内存平衡起到显著作用

需要考虑下面几个问题:

定量拆分还是动态拆分?定量拆分需要考虑value增长的问题;动态分片就是先按原key读第一个分片,第一个分片的value记录分片的总数,然后再按照shard_num取。

存在部分写问题,比如写入10个分片的数据,只有5个分片写入成功,就会造成数据不一致问题。解决方案有下面几个

引入版本机制

value最前面带上版本号

一个分片不对就算错误,重新加载,容易陷入死循环

开发、维护、组装的成本

相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore     ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
目录
相关文章
|
1月前
|
消息中间件 监控 负载均衡
中间件RabbitMQ性能瓶颈
【7月更文挑战第13天】
87 11
|
1月前
|
运维 DataWorks Shell
简单三步骤,使用 DataWorks 建立每日天气预报推送
DataWorks 数据开发提供强大的工作流及调度能力,且近期上线了数据推送节点,这篇文章简单利用 Shell + 数据推送节点来完成每日天气预报的推送工作。
59 8
|
1月前
|
存储 API Android开发
kotlin开发安卓app,使用webivew 触发 onShowFileChooser, 但只能触发一次,第二次无法触发,是怎么回事。 如何解决
在Android WebView开发中,`onShowFileChooser`方法用于开启文件选择。当用户只能选择一次文件可能是因为未正确处理选择回调。解决此问题需确保:1) 实现`WebChromeClient`并覆写`onShowFileChooser`;2) 用户选择文件后调用`ValueCallback.onReceiveValue`传递URI;3) 传递结果后将`ValueCallback`设为`null`以允许再次选择。下面是一个Kotlin示例,展示如何处理文件选择和结果回调。别忘了在Android 6.0+动态请求存储权限,以及在Android 10+处理分区存储。
109 8
|
1月前
|
分布式计算 资源调度 Hadoop
Hadoop网络带宽限制
【7月更文挑战第13天】
53 14
|
1月前
|
机器学习/深度学习 自然语言处理 TensorFlow
使用Python实现深度学习模型:文本生成与自然语言处理
【7月更文挑战第14天】 使用Python实现深度学习模型:文本生成与自然语言处理
44 12
|
1月前
|
SQL 监控 Oracle
|
1月前
|
存储 监控 NoSQL
中间件Redis性能瓶颈
【7月更文挑战第13天】
46 11
|
1月前
|
Python
python变量未定义(NameError)
【7月更文挑战第13天】
51 11
|
1月前
|
SQL 数据库
SQL BETWEEN 操作符
【7月更文挑战第14天】SQL BETWEEN 操作符。
31 10
|
1月前
|
API Python
python属性错误(AttributeError)
【7月更文挑战第13天】
48 10