项目之使用redis的一些规范和优化

前段时间在回顾自己项目的时候发现了一些问题,并对这些问题进行了优化,今天就来记录一下对redis使用的一些优化

redis一般情况来说用作缓存,会存储一些需要缓存的对象信息,但是当存储的内容过多以后,如何命名这些缓存的对象,能够快速地查找出你需要的对象,快速地区分哪些key里面存的是你想要的数据就成了一个问题。

举个例子:可能你今天码代码的时候觉得当存放user对象时key值应该是“user“,过几天回过头来继续写的时候又觉得key值应该写成“USER”,这个时候你还要去查找你上次写的代码的地方,和你原来书写的值做一个统一,统一这种缓存存值的命名规范,感觉是一种无脑操作,浪费时间浪费精力,还经常想当然地把命名搞错了,及其不方便

并且还会出现你查看缓存的时候可能根本不忘了这个缓存key是用来缓存什么东西了,他是属于哪个类的都不知道

这样极大地增加了自己的工作量,并且不够严谨

当时做这个项目的时候不觉得有什么问题,但是这次的目的是为了优化代码结构,写出一个规范的漂亮的不冗余的代码,这个问题就需要解决了。


我的解决方式也狠简单,使用了模板模式,针对存放对象的类不同来统一加上类名作为前缀,并且后面跟上自己自定义的名字,然后根据每一个自己想缓存的对象的所属的类去实现不同的构造名字的方法:

第一步:首先定义了一个接口,里面呢包含两个方法,设置过期时间和前缀名:

public interface KeyPrefix {
    public int expireSeconds();
    public  String getPrefix();
}

接着是一个抽象的实现类实现这两个方法:

public abstract class BasePrefix implements KeyPrefix {
    private int expireSeconds;
    private String prefix;
    public BasePrefix(int expireSeconds,String prefix)
    {
        this.expireSeconds=expireSeconds;
        this.prefix=prefix;
    }
    public BasePrefix(String prefix)
    {
        this(0,prefix);
    }

    @Override
    public int expireSeconds() {
        return expireSeconds;
    }

   

你可能感兴趣的:(项目相关)