本文介绍了使用 Redis 时的开发规范,从键值设计、命令使用等方面进行说明,通过本文的介绍可以减少使用 Redis 过程中带来的问题。
键值设计
- | 规范 | Level |
---|---|---|
key | 1.以业务名(或数据库名)为前缀(防止key冲突),用冒号分隔,比如业务名:表名:id; 2.保证语义的前提下,控制key的长度; 3.不要包含特殊字符(空格、换行、单双引号以及其他转义字符)。 | 强制 |
value | 1.禁止bigkey(防止网卡流量、慢查询),string类型控制在10KB以内,hash、list、set、zset元素个数不要超过5000; 2.非字符串的bigkey,不要使用del删除,使用hscan、sscan、zscan方式渐进式删除,同时要注意防止bigkey过期时间自动删除问题(例如一个200万的zset设置1小时过期,会触发del操作,造成阻塞,而且该操作不会不出现在慢查询中(latency可查)),查找方法和删除方法 | 强制 |
生命周期 | 建议使用expire设置过期时间(条件允许可以打散过期时间,防止集中过期),不过期的数据重点关注idletime。 | 推荐 |