1.对于key的设计:增强可读性和可管理性,以业务名或者数据库名为前缀,防止key冲突,用冒号分隔,比如:业务名:模块名:表名:id ,在保证语义的前提下,控制key的长度,当key比较多的时候,会占用比较多的内存。设计的原则:(1)建议全部大写(2)key不能太长也不能太短,太长占用资源,太短可读性太差(3)key单词与单词之间用“:”分隔开
2.对于vaule的设计:拒绝bigkey,防止网卡流量、慢查询,string类型控制在10KB以内,hash、list、set、zset元素个数不要超过5000。 对于非字符串多bigkey,不要使用del删除,使用hscan、scan、zscan方式渐近式删除,同时要注意防止bigkey过期时间自动删除问题(比如一个300万的zset设置2小时过期,就会触发del操作,形成阻塞,而且该操作不会不出现在慢查询中,对于redis建议使用expire控制redis的过期时间,条件允许可以打散过期时间,防止集中过期),不过期的数据重点关注。