java 开发之 Redis 的使用规范
Redis 使用规范围绕如下几个纬度展开:
键值对使用规范;
命令使用规范;
数据保存规范;
运维规范。
键值对使用规范
有两点需要注意:
好的 key 命名,才能提供可读性强、可维护性高的 key,便于定位问题和寻找数据。
value 要避免出现 bigkey、选择高效的序列化和压缩、使用对象共享池、选择高效恰当的数据类型。
key 命名规范
规范的 key 命名,在遇到问题的java培训时候能够方便定位。Redis 属于 没有 Scheme 的 NoSQL 数据库。
所以要靠规范来建立其 Scheme 语意,就好比根据不同的场景我们建立不同的数据库。
敲黑板
把「业务模块名」作为前缀(好比数据库 Scheme),通过「冒号」分隔,再加上「具体业务名」。
这样我们就可以通过 key 前缀来区分不同的业务数据,清晰明了。
总结起来就是:「业务名:表名:id」
key 是字符串,底层的数据结构是 SDS,SDS 结构中会包含字符串长度、分配空间大小等元数据信息。
字符串长度增加,SDS 的元数据也会占用更多的内存空间。
所以当字符串太长的时候,我们可以采用适当缩写的形式。
不要使用 bigkey
因为 Redis 是单线程执行读写指令,java培训如果出现 bigkey 的读写操作就会阻塞线程,降低 Redis 的处理效率。
bigkey 包含两种情况:
键值对的 value 很大,比如 value 保存了 2MB 的 String 数据;
键值对的 value 是集合类型,元素很多,比如保存了 5 万个元素的 List 集合。
虽然 Redis 官方说明了 key 和 string 类型 value 限制均为 512MB。最新 Redis 面试题整理好了,点击 Java 面试库小程序在线刷题。
防止网卡流量、慢查询,string 类型控制在 10KB 以内,hash、list、set、zset 元素个数不要超过 5000。
我们还可以通过 gzip 数据压缩来减小数据大小:
集合类型
如果集合类型的元素的确很多,我们可以将一个大集合拆分成多个小集合来保存。
文章来源 Java 技术栈
评论