Redis 第7章之开发注意事项
文章目录
设计
1.冷热数据分离,不要将所有数据全部都放到Redis中
虽然Redis支持持久化,但是Redis的数据存储全部都是在内存中的,成本昂贵。建议根据业务只将高频热数据存储到Redis中【QPS大于5000】,对于低频冷数据可以使用MySQL/ElasticSearch/MongoDB等基于磁盘的存储方式,不仅节省内存成本,而且数据量小在操作时速度更快、效率更高!
2.不同的业务数据要分开存储
不要将不相关的业务数据都放到一个Redis实例中,建议新业务申请新的单独实例。因为Redis为单线程处理,独立存储会减少不同业务相互操作的影响,提高请求响应速度;同时也避免单个实例内存数据量膨胀过大,在出现异常情况时可以更快恢复服务!
3.规范Key的格式
“平台缩写“+“:”+“项目名”+“:”+“业务含义”
例如:GW:TRADE:USERID
GW是新网关,TRADE是交易项目,USERID为业务ID。
":"作为key分隔符,方便客户端工具作为目录分级
注:集群模式下批量操作要求在同一个槽点下。(SKU:{hello}:123与SKU:{hello}:456 在同一个hash槽内)。
# 计算hash槽值的伪代码
def key_hash_slot(key):
int keylen = key.length();