避免大 Key 热 Key 实践指南

云数据库 SCS

  • 功能发布记录
  • 产品描述
    • 功能概览
    • 灾备方案介绍
    • 产品特性
    • 业务场景
    • 多活实例组介绍
    • 产品架构
    • 可观测性能力介绍
    • 什么是云数据库 Redis
    • 使用须知
    • 热活实例组介绍
    • 云数据库 Redis 版初识与选型
      • Redis 容量型(原 PegaDB)产品介绍
      • 云数据库 Redis 版与自建 Redis 的对比
      • Redis 容量版与 Redis 社区版的特性对比
    • 行业案例
      • 广告行业应用
    • 实例规格
      • Memcached集群版
      • Redis 容量型(原PegaDB)数据库
      • Redis标准版
      • 边缘数据库Redis
      • Redis集群版
  • 重要通知
    • 品牌升级
  • Redis使用限制
    • 主从节点实例与集群的区别
    • 背景信息
    • 其他说明
    • Redis容量型(PegaDB)使用命令限制
    • Redis命令使用限制
  • 快速入门
    • 快速入门流程
    • 连接实例
    • 创建实例
  • 典型实践
    • Redis 事务使用注意事项
    • Redis Pipeline 机制介绍
    • 客户端配置注意事项
    • 消息发布与订阅
  • Memcached使用限制
    • Memcached-使用限制
  • 服务等级协议SLA
    • 百度智能云可信云
    • 云数据库Redis服务条款
    • Redis服务等级协议SLA
  • 最佳实践
    • 消息发布订阅
    • Redis设计规范与最佳实践
    • 避免大 Key 热 Key 实践指南
  • API参考
    • 通用说明
    • API规格
    • 附录
    • 错误返回
    • 使用须知
    • API简介
    • 多活实例组
      • 获取同步状态
      • 多活实例组删除
      • 前置检查
      • 多活实例组列表
      • 创建多活实例组
      • 修改多活实例组名称
      • 多活实例组详情
    • 部署集
      • 创建部署集API
      • 删除部署集API
      • 获取部署集列表API
      • 修改部署集API
    • 日志管理
      • 日志明细API
      • 日志列表API
      • 审计日志开关API
    • 网络安全
      • 域名交换
      • 删除IP白名单
      • 查询IP白名单
      • 修改访问密码
      • 增加IP白名单
    • 安全管理
      • 更新安全组API
      • TDE加密
      • 绑定安全组API
      • 查看安全组API
      • 解绑安全组API
      • 开启或关闭TLS加密API
      • 获取TLS证书API
    • 账号管理
      • 设置权限
      • 修改账号密码
      • 删除账号
      • 账号列表
      • 创建账号
    • 订单服务
      • 取消预付费转后付费API
      • 变更配置
      • 续费实例
      • 续费API
      • 获取实例变更配置价格
      • 预付费转后付费API
      • 后付费转预付费API
      • 释放实例
      • 创建实例
      • 获取创建实例价格
    • 实例服务
      • 清空实例
      • 重启实例
      • 创建统一读入口
      • 设置集群为热活从地域
      • 修改实例名称
      • 解绑标签
      • 标准版升级集群版API
      • 获取实例详情
      • 从回收站中批量恢复实例
      • 主从切换API
      • 统一读入口负载均衡
      • 获取可用区列表
      • 获取实例规格列表
      • 获取实例列表
      • 获取子网列表
      • 设置集群为热活主地域
      • 集群状态检查
      • 迁移可用区API
      • 绑定标签
      • IP变更API
      • 获取回收站内的实例列表
      • 拨测接口
      • 修改实例域名
      • 释放回收站中的实例
      • 修改维护时间窗口API
    • 备份恢复
      • 查看备份列表API
      • 删除手动备份API
      • 手动备份API
      • 修改备份备注API
      • 获取备份策略API
      • 设置备份策略API
      • 获取备份的URL API
    • 热活实例组
      • 创建热活实例组
      • 实例组禁写
      • 获取热活实例组列表
      • 获取IP白名单列表
      • 移除从集群
      • 获取从角色同步状态
      • 添加IP白名单
      • 前置检查
      • 添加从集群
      • 修改热活实例组名称
      • 热活实例组详情
      • 设置从角色脏读
      • 设置流控规则
      • 变更主角色
      • 释放热活实例组
      • 删除IP白名单
    • 参数管理
      • 获取参数列表
      • 修改参数
    • 参数模版
      • 获取参数模版列表
      • 删除参数模版
      • 获取应用参数模版记录
      • 获取系统参数列表
      • 创建参数模版
      • 参数模版修改参数
      • 参数模版删除参数
      • 应用参数模版
      • 参数模版添加参数
      • 修改参数模版名称
      • 参数模版详情
    • API参考2018版
      • 通用说明
      • API规格
      • 接口说明
      • 附录
      • 错误返回
      • 使用须知
      • API简介
  • 常见问题
    • 安全管控保障
    • 费用相关问题
    • 企业上云评估参考
    • 常见问题总览
    • 性能类问题
    • 常见报错与解决方案
    • Lua脚本使用规范与注意事项
  • 版本说明
    • Redis磁盘型(PegaDB)小版本发布日志
    • Redis内存型小版本发布日志
  • 视频专区
    • 操作指南
  • 产品定价
    • 到期和欠费处理
    • 后付费
      • Redis
      • Memcached
    • 计费说明
      • 变配计费说明
      • 计费方式说明
      • 计费方式变更
      • 续费说明
      • 账单和用量查询
      • 退款说明
    • 预付费
      • Redis
      • Memcached
  • 操作指南
    • Redis操作指南
      • 多用户访问控制
      • 功能概览
      • 创建热活实例组
      • 迁移可用区
      • 导出实例列表
      • 实例状态与影响
      • IP变更
      • 创建多活实例组
      • 控制台介绍
      • Redis 实例生命周期流程
      • 任务管理
        • 任务列表
      • 只读组管理
        • 只读组管理
      • 日志管理
        • 审计日志
        • 运行日志
        • 慢日志
      • 连接指南
        • 查看连接地址
        • 使用单机模式连接
        • 数据分片规则
        • 使用redis-cli连接 Redis 集群
        • Redis实例登录方式
        • 使用 sentinel 模式连接
        • 使用集群模式连接
      • SmartDBA
        • 会话管理
        • 集群拓扑
        • 热Key分析
        • 大Key分析
        • 日志明细
      • 安全管理
        • TLS加密访问
        • 开启TDE加密
        • 开启免密访问
        • 设置IP白名单
        • 安全组
      • 账号管理
        • 修改账号密码
        • 修改账号权限
        • 修改账号备注
        • 删除账号
        • 创建账号
      • 监控报警
        • 设置报警规则
        • 自定义监控项(Redis)
        • 查看监控数据
      • 计费变更
        • 预付费转后付费
        • 后付费转预付费
      • 实例管理
        • 添加从节点
        • 删除从节点
      • 版本升级
        • 大版本升级
        • 小版本升级
      • 变更实例
        • 修改实例名称
        • 变更配置
        • 主从切换
        • 设置公网访问
        • 标准版升级为集群版
        • 修改实例端口
        • 修改实例域名
        • 设置维护窗口
      • 备份管理
        • 备份加密
        • 备份恢复
        • 按时间点恢复数据
        • 备份管理
        • Redis持久化与备份恢复概述
      • 标签管理
        • 创建标签
        • 删除标签
        • 资源账单
        • 根据标签筛选实例
      • 数据迁移
        • 使用 AOF 文件进行迁移
        • Redis数据迁移方案概览
        • 使用 DTS 迁移自建 Redis
      • 参数管理
        • 参数说明
        • 保存为参数模版
        • 查看参数修改历史
        • 禁用危险命令
        • 应用参数模版
        • 设置实例参数
        • 关闭AOF落盘
      • 节点变更
        • 变更只读节点数量
        • 变更节点数量
      • 实例生命周期
        • 清空实例
        • 重启实例
        • 实例回收站
        • 读写分离
        • 释放实例
        • 创建实例
        • 续费实例
          • 自动续费
          • 手动续费
    • 性能调优
      • 如何处理Redis集群数据倾斜
      • 排查Redis实例CPU使用率高的问题
      • 常见Latency(时延)事件的处理建议
      • 排查Redis实例流量使用率高的问题
      • 排查Redis实例内存使用率高的问题
    • Redis 容量型(原 PegaDB)操作指南
      • SmartDBA
        • 会话管理
        • 热Key分析
        • 大Key分析
        • 日志明细
      • 安全管理
        • TLS加密访问
        • 开启免密访问
        • 设置IP白名单
        • 安全组
      • 账号管理
        • 修改账号密码
        • 修改账号权限
        • 修改账号备注
        • 删除账号
        • 创建账号
      • 监控报警
        • 查看监控数据(PegaDB)
        • 设置报警规则
        • 自定义监控项(PegaDB)
      • 计费变更
        • 预付费转后付费
        • 后付费转预付费
      • 版本升级
        • 小版本升级(PegaDB)
      • 变更实例
        • 修改实例名称
        • 变更配置
        • 主从切换
        • 设置公网访问
        • 修改实例端口
        • 修改实例域名
        • 设置维护窗口
      • 备份管理
        • 数据备份
      • 参数管理
        • 参数配置
      • 节点变更
        • 变更节点数量
      • 实例生命周期
        • 释放实例
        • 创建实例
        • 续费实例
          • 自动续费
          • 手动续费
    • Memcached操作指南
      • 安全管理
        • 设置IP白名单
        • 安全组
      • 监控报警
        • 设置报警规则
        • 查看监控数据
      • 计费变更
        • 预付费转后付费
        • 后付费转预付费
      • 变更实例
        • 修改实例名称
        • 变更配置
        • 修改实例域名
      • 实例生命周期
        • 释放实例
        • 创建实例
        • 续费实例
          • 自动续费
          • 手动续费
  • SDK
    • GO-SDK
      • 异常处理
      • 初始化
      • 主要接口
      • 安装SDK工具包
      • 概述
所有文档
menu
没有找到结果,请重新输入

云数据库 SCS

  • 功能发布记录
  • 产品描述
    • 功能概览
    • 灾备方案介绍
    • 产品特性
    • 业务场景
    • 多活实例组介绍
    • 产品架构
    • 可观测性能力介绍
    • 什么是云数据库 Redis
    • 使用须知
    • 热活实例组介绍
    • 云数据库 Redis 版初识与选型
      • Redis 容量型(原 PegaDB)产品介绍
      • 云数据库 Redis 版与自建 Redis 的对比
      • Redis 容量版与 Redis 社区版的特性对比
    • 行业案例
      • 广告行业应用
    • 实例规格
      • Memcached集群版
      • Redis 容量型(原PegaDB)数据库
      • Redis标准版
      • 边缘数据库Redis
      • Redis集群版
  • 重要通知
    • 品牌升级
  • Redis使用限制
    • 主从节点实例与集群的区别
    • 背景信息
    • 其他说明
    • Redis容量型(PegaDB)使用命令限制
    • Redis命令使用限制
  • 快速入门
    • 快速入门流程
    • 连接实例
    • 创建实例
  • 典型实践
    • Redis 事务使用注意事项
    • Redis Pipeline 机制介绍
    • 客户端配置注意事项
    • 消息发布与订阅
  • Memcached使用限制
    • Memcached-使用限制
  • 服务等级协议SLA
    • 百度智能云可信云
    • 云数据库Redis服务条款
    • Redis服务等级协议SLA
  • 最佳实践
    • 消息发布订阅
    • Redis设计规范与最佳实践
    • 避免大 Key 热 Key 实践指南
  • API参考
    • 通用说明
    • API规格
    • 附录
    • 错误返回
    • 使用须知
    • API简介
    • 多活实例组
      • 获取同步状态
      • 多活实例组删除
      • 前置检查
      • 多活实例组列表
      • 创建多活实例组
      • 修改多活实例组名称
      • 多活实例组详情
    • 部署集
      • 创建部署集API
      • 删除部署集API
      • 获取部署集列表API
      • 修改部署集API
    • 日志管理
      • 日志明细API
      • 日志列表API
      • 审计日志开关API
    • 网络安全
      • 域名交换
      • 删除IP白名单
      • 查询IP白名单
      • 修改访问密码
      • 增加IP白名单
    • 安全管理
      • 更新安全组API
      • TDE加密
      • 绑定安全组API
      • 查看安全组API
      • 解绑安全组API
      • 开启或关闭TLS加密API
      • 获取TLS证书API
    • 账号管理
      • 设置权限
      • 修改账号密码
      • 删除账号
      • 账号列表
      • 创建账号
    • 订单服务
      • 取消预付费转后付费API
      • 变更配置
      • 续费实例
      • 续费API
      • 获取实例变更配置价格
      • 预付费转后付费API
      • 后付费转预付费API
      • 释放实例
      • 创建实例
      • 获取创建实例价格
    • 实例服务
      • 清空实例
      • 重启实例
      • 创建统一读入口
      • 设置集群为热活从地域
      • 修改实例名称
      • 解绑标签
      • 标准版升级集群版API
      • 获取实例详情
      • 从回收站中批量恢复实例
      • 主从切换API
      • 统一读入口负载均衡
      • 获取可用区列表
      • 获取实例规格列表
      • 获取实例列表
      • 获取子网列表
      • 设置集群为热活主地域
      • 集群状态检查
      • 迁移可用区API
      • 绑定标签
      • IP变更API
      • 获取回收站内的实例列表
      • 拨测接口
      • 修改实例域名
      • 释放回收站中的实例
      • 修改维护时间窗口API
    • 备份恢复
      • 查看备份列表API
      • 删除手动备份API
      • 手动备份API
      • 修改备份备注API
      • 获取备份策略API
      • 设置备份策略API
      • 获取备份的URL API
    • 热活实例组
      • 创建热活实例组
      • 实例组禁写
      • 获取热活实例组列表
      • 获取IP白名单列表
      • 移除从集群
      • 获取从角色同步状态
      • 添加IP白名单
      • 前置检查
      • 添加从集群
      • 修改热活实例组名称
      • 热活实例组详情
      • 设置从角色脏读
      • 设置流控规则
      • 变更主角色
      • 释放热活实例组
      • 删除IP白名单
    • 参数管理
      • 获取参数列表
      • 修改参数
    • 参数模版
      • 获取参数模版列表
      • 删除参数模版
      • 获取应用参数模版记录
      • 获取系统参数列表
      • 创建参数模版
      • 参数模版修改参数
      • 参数模版删除参数
      • 应用参数模版
      • 参数模版添加参数
      • 修改参数模版名称
      • 参数模版详情
    • API参考2018版
      • 通用说明
      • API规格
      • 接口说明
      • 附录
      • 错误返回
      • 使用须知
      • API简介
  • 常见问题
    • 安全管控保障
    • 费用相关问题
    • 企业上云评估参考
    • 常见问题总览
    • 性能类问题
    • 常见报错与解决方案
    • Lua脚本使用规范与注意事项
  • 版本说明
    • Redis磁盘型(PegaDB)小版本发布日志
    • Redis内存型小版本发布日志
  • 视频专区
    • 操作指南
  • 产品定价
    • 到期和欠费处理
    • 后付费
      • Redis
      • Memcached
    • 计费说明
      • 变配计费说明
      • 计费方式说明
      • 计费方式变更
      • 续费说明
      • 账单和用量查询
      • 退款说明
    • 预付费
      • Redis
      • Memcached
  • 操作指南
    • Redis操作指南
      • 多用户访问控制
      • 功能概览
      • 创建热活实例组
      • 迁移可用区
      • 导出实例列表
      • 实例状态与影响
      • IP变更
      • 创建多活实例组
      • 控制台介绍
      • Redis 实例生命周期流程
      • 任务管理
        • 任务列表
      • 只读组管理
        • 只读组管理
      • 日志管理
        • 审计日志
        • 运行日志
        • 慢日志
      • 连接指南
        • 查看连接地址
        • 使用单机模式连接
        • 数据分片规则
        • 使用redis-cli连接 Redis 集群
        • Redis实例登录方式
        • 使用 sentinel 模式连接
        • 使用集群模式连接
      • SmartDBA
        • 会话管理
        • 集群拓扑
        • 热Key分析
        • 大Key分析
        • 日志明细
      • 安全管理
        • TLS加密访问
        • 开启TDE加密
        • 开启免密访问
        • 设置IP白名单
        • 安全组
      • 账号管理
        • 修改账号密码
        • 修改账号权限
        • 修改账号备注
        • 删除账号
        • 创建账号
      • 监控报警
        • 设置报警规则
        • 自定义监控项(Redis)
        • 查看监控数据
      • 计费变更
        • 预付费转后付费
        • 后付费转预付费
      • 实例管理
        • 添加从节点
        • 删除从节点
      • 版本升级
        • 大版本升级
        • 小版本升级
      • 变更实例
        • 修改实例名称
        • 变更配置
        • 主从切换
        • 设置公网访问
        • 标准版升级为集群版
        • 修改实例端口
        • 修改实例域名
        • 设置维护窗口
      • 备份管理
        • 备份加密
        • 备份恢复
        • 按时间点恢复数据
        • 备份管理
        • Redis持久化与备份恢复概述
      • 标签管理
        • 创建标签
        • 删除标签
        • 资源账单
        • 根据标签筛选实例
      • 数据迁移
        • 使用 AOF 文件进行迁移
        • Redis数据迁移方案概览
        • 使用 DTS 迁移自建 Redis
      • 参数管理
        • 参数说明
        • 保存为参数模版
        • 查看参数修改历史
        • 禁用危险命令
        • 应用参数模版
        • 设置实例参数
        • 关闭AOF落盘
      • 节点变更
        • 变更只读节点数量
        • 变更节点数量
      • 实例生命周期
        • 清空实例
        • 重启实例
        • 实例回收站
        • 读写分离
        • 释放实例
        • 创建实例
        • 续费实例
          • 自动续费
          • 手动续费
    • 性能调优
      • 如何处理Redis集群数据倾斜
      • 排查Redis实例CPU使用率高的问题
      • 常见Latency(时延)事件的处理建议
      • 排查Redis实例流量使用率高的问题
      • 排查Redis实例内存使用率高的问题
    • Redis 容量型(原 PegaDB)操作指南
      • SmartDBA
        • 会话管理
        • 热Key分析
        • 大Key分析
        • 日志明细
      • 安全管理
        • TLS加密访问
        • 开启免密访问
        • 设置IP白名单
        • 安全组
      • 账号管理
        • 修改账号密码
        • 修改账号权限
        • 修改账号备注
        • 删除账号
        • 创建账号
      • 监控报警
        • 查看监控数据(PegaDB)
        • 设置报警规则
        • 自定义监控项(PegaDB)
      • 计费变更
        • 预付费转后付费
        • 后付费转预付费
      • 版本升级
        • 小版本升级(PegaDB)
      • 变更实例
        • 修改实例名称
        • 变更配置
        • 主从切换
        • 设置公网访问
        • 修改实例端口
        • 修改实例域名
        • 设置维护窗口
      • 备份管理
        • 数据备份
      • 参数管理
        • 参数配置
      • 节点变更
        • 变更节点数量
      • 实例生命周期
        • 释放实例
        • 创建实例
        • 续费实例
          • 自动续费
          • 手动续费
    • Memcached操作指南
      • 安全管理
        • 设置IP白名单
        • 安全组
      • 监控报警
        • 设置报警规则
        • 查看监控数据
      • 计费变更
        • 预付费转后付费
        • 后付费转预付费
      • 变更实例
        • 修改实例名称
        • 变更配置
        • 修改实例域名
      • 实例生命周期
        • 释放实例
        • 创建实例
        • 续费实例
          • 自动续费
          • 手动续费
  • SDK
    • GO-SDK
      • 异常处理
      • 初始化
      • 主要接口
      • 安装SDK工具包
      • 概述
  • 文档中心
  • arrow
  • 云数据库SCS
  • arrow
  • 最佳实践
  • arrow
  • 避免大 Key 热 Key 实践指南
本页目录
  • 该如何设计数据结构以避开大Key和热Key?

避免大 Key 热 Key 实践指南

更新时间:2025-08-22

该如何设计数据结构以避开大Key和热Key?

老生常谈的大Key和热Key,需要拆、需要打散,如上,我们也给出各种类型Value建议大小,怎么拆呢?又如何打散呢? 除了拆和打散,还有没有别的办法呢?下面举一些常见的场景案例。

业务使用场景 举例
消息队列
任务记录
用户任务记录(读文章,签到,看视频...),比如:
Key的设计最好以时间段划分
按月记录 uid:task:202209 而非将所有任务记录到一个Key: uid:task:all
task.png

注意事项:

  • Key名字要设置合理过期时间,避免一个Key中堆积很长时间历史数据。
  • 如果预期Key的成员会随着时间增加而变多,建议“HSCAN,SSCAN......”的方式定期清理。
  • 消息队列要监控上下游的生产消费速度,或者监控队列长度,避免任务堆积。
业务使用场景 举例
“可分类的数据”
地域信息
配置信息
活动种类
业务种类
根据考生分数查询可报考学校,比如:
将多个地域存一个Key拆开,改为多个地域对应多个Key,比如:
“全国考生分数学校对应信息(key)—— 省份_分数段_政史地(field)—— 可以报考学校的信息(value)”,
可以优化成: “云南考生(key)—— 政史地:分数段(field)—— 可以报考学校的信息(value)”
hash2.png

注意事项:

  • 对于地域,时间,业务种类这种数据,设计Key的粒度要尽可能小,避免出现地域级别热点Key,利用分类将Key打散。
  • 有时候设计Key的时候习惯用Key名字对应MySQL表名字,那这个Key的范围就容易很大,我们建议将Key拆开,用一些常用数据库字段对应到Key上。
业务使用场景 举例
“属性相关信息”
用户信息
设备规格
聊天记录
商品规格
记录不同分数段对应的学校信息,比如:
上例中“edu0_info”对应“100-150分数段物化生考生”可报考所有学校的信息,那么所有学校的信息本身是超过4KB的JSON,此时不建议Hash类型Value存储JSON,可以存JSON的Key名字“edu0_info_key”
hashandhash.png

注意事项:

  • 复合类型元素或者成员的Value建议小于4k,避免HGETALL,LRANGE 0 -1,SMEMBERS 取全集导致Redis压力过大。
  • 建议将HGETALL换成HMGET,将LRANGE 0 -1换成LRANGE 0 50获取,SMEMBERS换成SISMEMBER,ZRANGE 0 -1换成ZRANGEBYSCORE加LIMIT。
  • 元素或者成员Value建议是字符串,而不建议使用大JSON或者数组,可以将JSON存到单独的Hash或者String类型的Key中。
业务使用场景 举例
“各种ID”
粉丝列表
视频收藏列表
歌单歌曲列表
文章信息库
关注用户列表
某次活动中奖用户记录,比如:
用户ID用1000取模,就可以将用户ID全集的1个Key拆成1000个Key,如果ID很多,可以用ID和ID前2个字符取模两次,按需分段uid#0#0,uid#1#1 ,......, uid#999#99
qvmo.png

注意事项:

  • 利用Value在Key的名字上取模,常用在各种ID,即Value是整型,比如用户ID、书籍ID、文章ID。
  • Key名字使用的分隔符号不建议使用空格和可能引起运算的符号(“-”,“.”,“+”,“=”,......),建议用 “#”,“:”,“_”。
业务使用场景 举例
“排序场景”
音乐历史记录排序
文章取热门评论排序
歌手热门歌曲排序
音乐播放历史,比如:
使用ZREMRANGEBYRANK 定期控制成员个数在1000左右,减轻ZREVRANK的O(log(N))开销
sort.png

注意事项:

  • 预期会经常排序的数据,建议控制元素(成员)个数在1000以内。
  • ZREMRANGEBYRANK本身复杂度为O(log(N)+M) ,注意使用频率,天级别或者整点或者业务低峰期执行为好。
业务使用场景 举例
“一对多的关系”
作弊规则
反攻击规则限制
配置应用
权限管理
屏蔽黑名单用户,比如:
大Set拆成单个String类型的Key,JSON格式的大String换Hash类型的Key
leixing.png

注意事项:

  • 使用合理的数据类型。
业务使用场景 举例
“热门场景”
热门直播间商品信息
热门赛事赛程信息
查询直播间的商品,比如:
同样的数据存多份备份,随机读一个,读不到再从DB回写
hots.png

注意事项:

  • 适合读多写少的数据。
  • 最佳实践是,分布式Redis中,备份数据份数可以用Redis集群分片数评估QPS分布,份数最好是集群分片数的一倍及以上。
业务使用场景 举例
页面 “默认” 展示 查询高考分数线的功能,比如:
需要显示类如【北京】【211】【北京邮电大学】,那么对于这种前端页面打开默认显示的数据不建议从Redis每次动态读取,可以业务侧本地缓存

注意事项:

  • 如果是常用枚举,或者默认参数的数据,建议代码里保存。
业务使用场景 举例
“大文本”
大图文
图片内容
小说
长篇文章
博客
评论内容
客服对话
将小说文章压缩后存储

注意事项:

  • JSON和XML换成轻量级的Protobuf。
  • 使用Snappy或GZIP压缩。
  • 预期Key可能过大,灌入数据的时候,使用EXPIREAT设置过期时间,不要集中到某个时间戳,最好加上随机时间。
业务使用场景 举例
所有场景
注意命令时间复杂度及其使用频率
比如O(n),O(log(n))以及更高复杂度的,控制元素个数,以及命令使用频率,时间复杂度详见:https://redis.io/commands/
比如INCR的Key需要设置一天的过期时间,那么可以根据返回结果判断,如果已经大于1,就不需要重复 PEXPIREAT
比如Redis4系及以上可以使用MEMORY USAGE查询Key的内存占用,避免未知Key大小,执行DEBUG OBJECT 造成阻塞
比如 O(N) 的N是成员(元素)总数的慎用或者降低使用频率

注意事项:
列举常见又常用的高复杂度命令如下:

  • List类型:LRANGE 范围取0 -1时慎用,LREM。
  • Hash类型:HKEYS,HVALS,HGETALL。
  • Set类型:SINTER / SINTERSTORE,SUNION / SUNIONSTORE,SMEMBERS。
  • Sorted Set类型:ZRANGE(...) 范围取0 -1时慎用,ZREVRANGE(...)。ZREMRANGEBY(...),ZUNION(...)。
  • Geo 类型:GEOHASH,GEORADIUS(...),GEOSEARCH(...)。
  • 其他:KEYS,MONITOR,DEBUG。

上一篇
Redis设计规范与最佳实践
下一篇
API参考