您当前的位置:首页 > 电脑百科 > 数据库 > Redis

redis key命名规范推荐

时间:2021-07-22 10:43:31  来源:  作者:零一间
redis key命名规范推荐

 

 

key命名风格

1需具有可读性以及可管理性,禁止毫无营养随意命名;

2 以英文字母开头,命名中只能出现小写字母、数字、英文点号 (.) 和英文半角冒号(:);

3 不要包含特殊字符,如下划线、空格、换行、单双引号以及其他转义字符;

key命名规范

<应用名>:<业务模块名>:<业务逻辑含义>:<index>:<index>:...

1 以上的名称可以进行简写,但是要有明确的规划,团队能够达成共识。

 

2 单应用可以不用应用名。

 

3 建议key的命名的结尾加上value对应的类型或者类型结尾。提高可读性;

示例:api:emr:patient:{userid}:str

value存储规范

1 拒绝大key(防止网卡流量、慢查询)。

String 类型控制在 10KB 以内,Hash、List、Set、ZSet 元素个数不要超过 5000。

业务规范

1、优先不使用缓存,防止缓存服务屏蔽底层的性能低下的业务逻辑而不自知。导致缓存重建时业务卡顿。

2、redis 在缓存场景时候,应该是为核心的小数据为主,而且QPS比较高。同时缓存在失效或者丢失情况下,应该考虑缓存重建逻辑,不能影响正常业务。

3、对 key 设置合理的过期时间。

说明:

1)若不设置的过期时间,key会一直占用内存不释放,随着时间会达到服务器的内存上限,导致服务器宕机等重大事故;

 

2)对于需要长期有效,可以判断即将到期时,重新设置有效期,避免引起热点 key。

4、低频数据不建议放在redis中,避免浪费资源。

6、禁止大 key

再次重申,禁止将大 key 数据存⼊ Redis。

1)带来大的内存占用

 

2)读写大 key 会导致超时,网卡流量占满,甚至阻塞服务, 更甚者导致宕机。

 

3)删除大 key,DEL 命令可能阻塞 Redis 进程,对应用和 Redis 集群可用性造成严重的影响。

 

4)建议每个 key 不要超过 10Kb。

7、不可使用 Keys 之类的操作。类似操作生产环境一半会禁用掉。

8、选择合适的数据类型。

Redis 支持的数据库结构类型较多:字符串(String),哈希(Hash),列表(List),集合(Set),有序集合(Sorted Set), Bitmap, HyperLogLog 和地理空间索引(geospatial)等, 需要根据业务场景选择合适的类型。这些之前的文章写过。

9、关于集合类操作

对于使用了 O(N) 的操作,导致服务超时,甚至服务不可用的问题。

1)使用 Set,Zset,List,Hash 等集合类的 O(N) 操作时,要预估 O(N) 操作的元素数量,避免全量操作,可以使用 HSCAN,SSCAN,ZSCAN 进行渐进操作。

 

2)集合元素数量过大在使用过程中会影响 Redis 的实际性能,Hash 类元素个数建议尽量不要超过 100,集合类、链表类数据尽量不要超过 10k。

 

3) 元素数量过大可考虑拆分成多个 key 进行处理。

10、合理的监控数据和服务性能,做好安全防护和性能提升的准备。

本文参考阿里云Redis开发规范



Tags:redis key   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,如有任何标注错误或版权侵犯请与我们联系(Email:2595517585@qq.com),我们将及时更正、删除,谢谢。
▌相关推荐
key命名风格1需具有可读性以及可管理性,禁止毫无营养随意命名;2 以英文字母开头,命名中只能出现小写字母、数字、英文点号 (.) 和英文半角冒号(:);3 不要包含特殊字符,如下划线...【详细内容】
2021-07-22  Tags: redis key  点击:(243)  评论:(0)  加入收藏
▌简易百科推荐
来源: my.oschina.net/xiaomu0082/blog/2990388首先说下问题现象:内网sandbox环境API持续1周出现应用卡死,所有api无响应现象刚开始当测试抱怨环境响应慢的时候 ,我们重启一下应...【详细内容】
2021-12-08  Java识堂    Tags:Redis   点击:(16)  评论:(0)  加入收藏
我不知道为什么你会选择对特定数量的“错误”(或警告)如此具体。听起来您正在寻找将要发布到 Yahoo! 的某些文章的内容。 Insider (N Foos to Blah for the BlahBlah)。那说:...【详细内容】
2021-12-07  富集云科技有限公司    Tags:Redis   点击:(14)  评论:(0)  加入收藏
目录 一、背景 二、步骤 0.理论支持 1、获取数据 2、结果 3、分析数据并评估大小 三、关于repl-backlog-size 一、背景 repl-backlog-size控制这个环形缓冲区. ​ 主从断...【详细内容】
2021-11-05  弈秋的美好生活    Tags:redis   点击:(41)  评论:(0)  加入收藏
Redis 性能测试是通过同时执行多个命令实现的。1,Redis-benchmarkRedis性能命令:redis性能命令格式: redis-benchmark [option] [option value] redis 性能测试工具可选参数如...【详细内容】
2021-11-02  川石信息    Tags:Redis   点击:(41)  评论:(0)  加入收藏
1 概述数据结构和内部编码 无传统关系型数据库的 Table 模型schema 所对应的db仅以编号区分。同一 db 内,key 作为顶层模型,它的值是扁平化的。即 db 就是key的命名空间。 key...【详细内容】
2021-11-01  JavaEdge    Tags:Redis   点击:(28)  评论:(0)  加入收藏
普通java中使用引用Java redis 驱动,即可连接:import redis.clients.jedis.Jedis; public class RedisTestJava { public static void main(String[] args) { //连...【详细内容】
2021-10-13  faesuite    Tags:Redis   点击:(34)  评论:(0)  加入收藏
Redis常用的数据结构有 string list set zset hashstringstring 是 Redis 的基本的数据类型,一个 key 对应一个 value。string 类型是二进制安全的,Redis的string可以包含任...【详细内容】
2021-10-12  语霖    Tags:Redis   点击:(36)  评论:(0)  加入收藏
列表类型可以存储一组按插入顺序排序的字符串,它非常灵活,支持在两端插入、弹出数据,可以充当栈和队列的角色。> LPUSH fruit apple(integer) 1> RPUSH fruit banana(integer)...【详细内容】
2021-09-17  深夜敲代码    Tags:Redis   点击:(54)  评论:(0)  加入收藏
Redis持久化意义 是做灾难恢复,数据恢复,也可以归类到高可用的一个环节里面去,比如你的redis整个挂了,然后redis就不可用了,你要做的事情是让redis变得可用,尽快变得可用 大量的请...【详细内容】
2021-08-12  小李说IT    Tags:Redis   点击:(77)  评论:(0)  加入收藏
当查询Redis中没有的数据时,该查询会下沉到数据库层,同时数据库层也没有该数据,当这种情况大量出现或被恶意攻击时,接口的访问全部透过Redis访问数据库,而数据库中也没有这些数据...【详细内容】
2021-07-30  随便t    Tags:缓存穿透   点击:(90)  评论:(0)  加入收藏
相关文章
    无相关信息
最新更新
栏目热门
栏目头条