redis使用规范

jopen 8年前

1、设置超时时间[最重要]

目前有许多key没有设置超时时间,导致一直占用内存。

需要增加操作步骤,设置超时时间。时间尽量短。

某些业务要求key长期有效。可以在每次写入时,都设置超时时间,让超时时间顺延。

短的超时时间,如 5分钟,10分钟,30分钟,1小时,3小时,1天等

长的超时时间,如 7天,15天,1个月,3个月,6个月等

示例代码如下:

// 设置有效期     jedis.expire(cacheMapName, ZLConstant.SECONDS_1_MONTH);

// 如果存在key     if (jedis.exists(mapName)) {      existMap = true;     }     // 写入登录信息缓存     jedis.hset(mapName, cacheKey, userJson);     // 如果是新建的,就设置超时时间     if (!existMap) {      // 设置超时时间      jedis.expire(mapName, expireSeconds);     }

2、高频和低频分离

高频数据存入Redis缓存,低频数据不要存入Redis缓存。

高频数据是经常访问的数据,在这里做好压力缓冲就行了。对于大量数据和列表数据尤其适用。

如,某商店的所有评价数据,总共有5000条之多,最近的30条(高频)可能是最常访问的,可以存入Redis缓存,其他的数据(低频)都不需要存缓存。

3、合理使用list,map,set等集合结构

结合具体业务,设置合理的数据结构,找出更好的选择。

集合结构还可以减少key的个数。

4、尽量使用字符串格式

可视化,便于查看和管理。

特别是在大批量数据的时候,效果明显。

5、合理设置key的格式

多系统在共用缓存,需要key唯一。

合适的key,便于查看,统计,排错。

key的格式,如:系统名+业务名+业务数据+其他

6、减少key的个数

为了过期管理,合理减少key。

比如,把key-value数据聚合,放到map、list里面。一个集合结构里面就可以包含很多个小数据。

7、精细化运营

之前的使用方法一直是粗放式。业务量小时,没问题;业务量大了,就各种问题。

为了未来系统稳定,为了每个人的职业成长,需要学会精细化运营。

深入分析业务流程,合理安排数据结构,合理使用公共资源,优化读写效率,提高系统抗风险能力。


来自: http://my.oschina.net/everyDay111/blog/552698