Redis设计规范与最佳实践

云数据库 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
  • Redis设计规范与最佳实践
本页目录
  • Key名字如何设计?
  • Key的大小
  • Key的命名
  • Key的过期时间
  • Value如何设计?
  • Value的大小
  • 使用的命令请求遵守哪些规范?
  • 控制数量:
  • 数据删除:
  • LUA 使用:
  • 消息队列或者通信:
  • 慎用的命令:

Redis设计规范与最佳实践

更新时间:2025-08-22

Key名字如何设计?

Key的大小

  • 建议控制在30个字节内,尽可能不超过128字节,如果是MGET超过100个数据的场景,此时Key名字最好不超过20字节。
  • 在能完整描述业务的前提下,尽量简化Key名的长度,比如“economic”简写为“ec”,“file path”简写为“fp”。

Key的命名

  • 不使用特殊字符,比如空格、单引号、转义字符。
  • 业务标识可以当做Key的前缀,标识和含义内容用英文冒号(:)分隔, 比如业务标识是“AID:15”,Key就可以写成:“AID:15:player:ranking”,方便遇到问题时根据业务标识尽快定位;如果Key本身是拆分Key,可以使用"#"分隔,比如“video_info#olympic#2020-08-29#1”,“video_info#olympic#2020-08-29#2”,提高可读性。
  • 正确使用Redis的hashtag,默认符号的配置是“{}”,集群版是按照hashtag(第一个“{”和第一个“}”之间的内容)来进行路由的,比如“a{aa{xxx}bb}b”是按照“{aa{xxx}”转发到同一个数据分片。
  • 由于大括号({})为Redis的hash tag语义,如果使用的是集群架构的实例,Key名称需要正确地使用大括号避免 引发数据倾斜 ,更多信息,请参见keys-hash-tags。

Key的过期时间

  • 建议Key都是需要设置过期时间的,尤其是秒杀、热门活动等集中写入的Key的场景, 可以在设置过期时间的时候要加上随机值, 让过期时间分散一些。

Value如何设计?

Value的大小

  • String类型的数据建议百字节以内,控制在1K以下, 最好不超过10K,如果是MGET或者使用Pipeline的场景,建议小于4K,Redis限制值是每个Value最大不超过512M。
  • 过大的Value会引发数据倾斜、热Key、CPU性能被占满等问题,业务可以从设计源头上避免此类问题带来的影响。

使用的命令请求遵守哪些规范?

控制数量:

  • 对于单个请求批量访问数据的场景,建议限制在100个Key以内(如:MGET一次不能超过100个Key、HMGET一次不能超过100个FIELD)。
  • 每个Pipeline批次下Key数量 ,建议限制在200以内,最好控制在50以内。
  • 对于O(n),O(log(n))以及更高复杂度的,控制元素个数以及使用频率,比如LRANGE 0 -1,HGETALL

数据删除:

  • 对于复合类型的DEL,如果是已知元素个数很多的大Key,4.0以上版本建议使用UNLINK方式删除,如果是低版本的Redis,可以使用HSCAN、SSCAN、ZSCAN。
  • 对于4系以上版本Redis建议开启Redis的lazyfree配置,启用异步删除的功能

LUA 使用:

  • 不建议将复杂的EVAL脚本放在Redis执行,会导致占用CPU以及内存资源,带来性能下降,我们6系的版本支持基础命令以外的MODULE来满足业务场景。
  • 不建议LUA中包含事务以及redis.replication相关的操作。
  • LUA脚本中变量需要保证是执行的时候给定脚本和参数,建议执行EVAL将LUA的脚本缓存在Redis中,通过EVALSHA的命令执行脚本内容。
  • 执行EVALSHA收到返回是脚本不存在的时候,需要重新执行EVAL。

消息队列或者通信:

  • 发布订阅的业务场景,要注意发布和订阅保持平衡, 包括订阅或者取消订阅的是已有的频道,避免出现热点。
  • 一次订阅建议控制在50个频道以内,以免输出缓冲区过高触发客户端连接的断连。
  • 用List类型做消息队列,要注意生产和消费保持平衡,并且通过LEN检查长度,通过LTRIM对队列的长度进行控制,及时截断。
  • 当出现队列异常堆积以后,控制再次消费的速度,避免大量堆积任务同一时间消费导致输出缓冲区过高触发客户端连接的断连。

慎用的命令:

  • 如果不确认Key是Big-key,不确认当前Redis的内存使用量,慎用DEBUG相关的命令(如 DEBUG DIGEST/OBJECT等),避免造成阻塞,如果需要检查Key的大小,使用4系及以上高版本MEMORY命令检查,低版本建议使用复杂度是O(1)的命令检查,比如:STRLEN,HLEN(更多详见:https://redis.io/commands/)。
  • 非必要不使用MONITOR命令,如果需要,预先检查Redis的网络流量,在确保网络流量在10M/s以下,安全使用MONITOR命令。
  • 非必要不使用KEYS命令,如果需要,在确保自己的数据量控制在网络流量10M/s以下,安全使用KEYS命令。

上一篇
消息发布订阅
下一篇
避免大 Key 热 Key 实践指南