
1. 简介
Redis是业界流行的缓存组件,为了规范Redis缓存的使用,避免落入各种问题陷阱,特此编写了此开发规范。本规范结合实际情况,描述了需要遵守的Redis最佳使用规约,及其供参考的最佳实践,供研发团队在项目开发中使用。
本文将出现如下规约术语,其中根据约束力强弱,规约分别有如下三级, 【强制】必须遵守的规约 【推荐】推荐遵守的规约,若无特殊情况,需要遵守该规约 【参考】参考遵守的规约,团队根据实际情况,可以选择性的遵守
每一个规约,根据情况,将有如下附加说明,
- 说明:对规约进一步的引申和解释
- 正例:提供一个正面遵守规约的样例
- 反例:提供一个规约的反面样例,以及真实的错误案例,提醒误区
2. 规约
2.1 键值设计
- 【强制】键的命名使用英文小写和冒号、下划线、数字,其中冒号和下划线不能作为键名的开始和结束,而冒号为命名空间分隔符。不要使用中文和特殊字符作为健名。
- 正例:”pphh:account:user1″
- 反例1:”pphh.账号-USER1″,该反例使用了点、中文、中划线、英文大写。
- 反例2:”:pphh:account:user1_”, 该反例使用了冒号和下划线作为开始和结束
- 【推荐】键的命名尽量简单、清晰、易懂,长度尽量控制在32个字符以内,不要超过64个字符。
- 说明:长的键名不仅消耗内存空间,而且会影响键的搜索查询速度。为了保证键的可读性,也不推荐太短的键名,比如”u1000flw”,可以使用”user:1000:followers”来表达。
- 反例1:”pphh:account:loooooooooooooooooooooooooooooooooooooooooog:name”
- 【推荐】键的命名空间分为三级,格式为 {系统简称}:{应用名}:{业务健名},命名空间通过冒号区分,公共键值以common表示。
- 正例1:”web:home_page:click”
- 正例2:”common:user_login:verification_code”
- 反例3:”web_home_page_click”
- 【推荐】键的值存储空间大小尽量在10KB以内,不推荐存储大于1MB的值。
【推荐】对于列表键(Hash、List、Set、Zset),尽量控制元素个数不超过千万数量级,若大于这个数量级,建议通过键值切分列表。
【推荐】建议List当做队列来使用。