Loading

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();
    }
}
posted @ 2021-08-20 14:50  JereCode  阅读(758)  评论(0编辑  收藏  举报