一起养成写作习惯!这是我参与「掘金日新计划 · 4 月更文挑战」的第7天,点击查看活动详情。
为了更好的使用 Redis,学习一下其使用规范
键值对使用规范
1、key 的命名规范
使用业务名作为前缀,然后使用冒号分隔,再加上具体的业务数据名。
注意控制 key 的长度,如果 key 较长的话,会消耗较多内存空间。
举例:
uv:page:1024
uv 代表业务 unique visitor(独立访客量)
page 代表数据名称,网页
1024 代表具体的网页编号
2、避免使用 bigkey
原因:Redis 使用单线程读写数据,bigkey 读写操作会阻塞线程,降低 Redis 的性能。
bigkey 情况一:键值对的值是 String 类型,本身比较大,例如 value 值为 1MB 的 String 数据类型。
建议:String 类型数据大小控制在 10 KB 以下。
bigkey 情况二:键值对的值是集合类型,集合元素个数非常多,例如包含 100 万个元素的 Hash 集合类型。
建议:集合类型数据,元素个数控制在 1 万以下。
3、使用高效序列化方法和压缩方法
4、使用整数对象共享池
Redis 内部维护了 0~9999 这一万个整数对象,并把这些整数作为一个共享池使用。
如果有一个键值对中使用了 0~9999 之间的一个整数,Redis 就不会为这个键值对专门创建整数对象了,而是会复用共享池中的整数对象。
注意有两种情况不能使用整数对象共享池。
第一种情况是,Redis 设置了 maxmemory,并且启用了 LRU 策略。
第二种情况是,集合类型数据采用 ziplist 编码。
数据保存规范
1、使用 Redis 保存热数据
2、不同业务数据分实例存储
3、保存数据时要设置过期时间
4、控制 Redis 实例的容量
建议 2~6 GB
命令使用规范
1、线上禁用部分命令
keys、flushall、flushdb
禁用方法,通过 rename-command 命令,对上面三个命令进行重命名,让客户端无法使用这些命令。
2、慎用 monitor 命令
3、慎用全量操作命令
hgetall、smembers
替代方法:使用 sscan、hscan 命令,分批返回集合中数据
参考文档:
《Redis 核心技术与实战》