一、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();
}
}