这里我们想到哪介绍到哪,主要是用于总结的,对于团队内部来说,根据实际的情况来整理规范即可。
这里 Redis 使用规范的话,因为内容不多,我们直接写一个合集集合,下面开始:
1)key命名规范
对于 redis 的 key 命名来说,我们的要求如下:
1、要求命名有可读性及可管理性 2、要求命名有简洁性 3、要求命名不能包含特殊符号,冒号除外。
所以基于此的话,我们日常的 key 命名规范是:业务名:表名:自定义 key,形如:
order:pay_order:pid
这样子比较好表达当前 key 的业务,表,键,如果没有表的话,则表名为:-1。 对于简洁性来说,有时候我们的表名特别长(特别是一些老系统的表名)此时我们就可以把表名进行简写即可。尽量缩短 key 的长度,因为 key 过多,占用的内存也非常高。
除了上面之外,我们还要求一项:
除非必要,所有的 key 都需要设置过期时间。(市面上99.9999%的场景都不需要 redis 保存永久数据)
2)value 规范
这里的 value 主要是向 key 存储的数据结构。目前我们的要求是:
1、如果是 string 类型的话,控制在10k 左右。 2、如果是 hash,list,set,zset 的话,对应的元素不要超过5000个 3、存储的时候使用合适的数据结构。
3)命令相关
对于 redis 相关的操作,我们还会有一些操作命令相关的要求:
以下是建议使用的命令:
1、如果有遍历的需求,必须使用:hscan、sscan、zscan,不能使用其他的。 2、如果需要获取队列的值,例如使用:hgetall、lrange、smembers、zrange、sinter命令,那么必须要传递一个 N 过去。 3、如果使用一些类似mget、mset这种同时设置或者去除相关的命令的时候,把此类命令修改为 pipeline 进行批量操作,提高效率。但是每次批量的数量控制在500以内。
以下是禁止使用的命令:
1、禁止使用keys、flushall、flushdb等命令,在运维部署的时候,需要使用rename机制禁掉此类的命令。
还没有评论,来说两句吧...