跳到主要内容
方的代码随记
返回

Redis Key 命名与业务规范

更新于:

目标:简洁、高效、可维护。

一、Key 命名风格

二、命名规范:三段式

业务模块名 : 业务逻辑含义 : 其他 : value 类型

  1. 业务模块名:具体的功能模块;
  2. 逻辑含义段:
    • 【强制】不同业务逻辑含义之间用英文半角冒号 : 分割;
    • 【强制】同一逻辑含义段内的单词之间用英文半角点号 . 分割,表示一个完整语义;
  3. value 类型:【强制】key 以它所代表的 value 类型结尾,提高可读性。

示例:

user:basic.info:{userid}:string

三、Value 设计

【强制】拒绝 bigkey(防止网卡流量打满、慢查询):

四、业务规范九条

#级别内容
1强制使用 Redis 做缓存必须提出申请,拿出合理方案并评估后再用,避免随意使用
2强制Redis 应是纯缓存服务,缓存数据可丢失;除特殊需求外需提供可行、可实施的方案
3强制key 必须设置过期时间,根据业务场景评估合理有效期
4推荐冷热数据分离,不常使用且无关紧要的信息放 MySQL 或日志文件,Redis 内存成本高
5推荐程序要考虑数据丢失后的重新加载过程
6强制禁止大 key
7强制禁止使用 KEYS 正则匹配操作
8推荐根据业务场景选择合适的数据类型
9推荐集合类操作要评估元素规模,避免 O(N) 全量操作

过期时间说明

为什么禁止大 key

数据类型选型

Redis 支持 String、Hash、List、Set、Sorted Set、Bitmap、HyperLogLog、Geospatial 等:

不能确定复杂结构一定优于 String 时,避免使用复杂数据结构;综合评估性能、存储、网络后再做选择。

集合类操作

集合类 O(N) 操作是超时问题的主要来源:


分享这篇文章:

上一篇
Miniconda 安装与环境管理
下一篇
Redis 源码编译安装与配置