在实际项目开发中,我们会有很多的地方会用到redis,当然也会设置很多的key,但是一旦这些key键多起来了难免会造成重复,或者我们自己都不知道那些键是存放什么缓存的。
因此我们都会给redis的key加上一个前缀;多说无益,还是直接上代码;
定义一个接口,规范key
public interface KeyPrefix {
public int expirSeconds();//过期时间 0代表永不过期
public String getPrefix(); //key前缀
}
写一个抽象方法去实现这个接口
public abstract class BasePrefix implements KeyPrefix{
private int expirSeconds;
private String prefix;
public BasePrefix(String prefix) {//0代表永不过期
this(0, prefix);
}
public BasePrefix(int expirSeconds, String prefix) {
this.expirSeconds=expirSeconds;
this.prefix=prefix;
}
@Override
public int expirSeconds() {//默认为0永不过期
return expirSeconds;
}
@Override
public String getPrefix() {
String className = getClass().getSimpleName();
return className+":"+prefix; //获取绑定实现类的classname到前缀,保证唯一便于维护管理
}
}
真正的实现类:
public class UserKey extends BasePrefix{
public UserKey(String prefix) {
super(0, prefix);
}
public static UserKey getbyId = new UserKey("id");
public static UserKey getbyName = new UserKey("name");
}
OK这样就能很好的管理我们的key了,至于如何使用,请参考
https://my.oschina.net/moonroot/blog/1813848