Redis中key的设计与管理(利用枚举)
一、redis 中 key 设计原则
唯一、可读、灵活、失效
- 唯一,比如注册验证码,需要加上
register_verify_code
作为唯一标识 - 可读,见名知意
- 灵活,比如攻略文章点赞的设计,可以带上用户id,攻略文章id,
strategy_thumbsupnum_vo:uid:sid
- 失效,缓存用完应该清理
二、枚举redis key 管理类
约定:一个枚举实例,对应着一个 redis 的 key
枚举核心特点
-
枚举类构造器是私有的
-
枚举类定义完成,它的实例个数固定
-
其他操作跟普通类差不多
demo
@Getter
public enum RedisKey {
REGISTER_VERIFY_CODE("register_verify_code:", Consts.VERIFY_CODE_VAI_TIME*60L); // 验证码
private String prefix; // key前缀
private Long time; // redis 存活时间
RedisKey(String prefix, Long time) {
this.prefix = prefix;
this.time = time;
}
//拼接出完整redis的key
public String join(String... values){
StringBuilder sb = new StringBuilder(80);
sb.append(this.prefix);
for (String value : values) {
sb.append(":").append(value);
}
return sb.toString();
}
}