Java-这个生成memcache key值的类该如何抽象?
public class CacheHelper {
public String getPrefix() {
return "data_" + this.getClass().getSimpleName();
}
}
public class TipCacheHelper extends CacheHelper {
/* getTipByUserId方法的缓存过期时间*/
public static final long getTipByUserIdKeyExpires = 1L;
/* getTipByUserId缓存key */
public String getTipByUserIdKey(int userId) {
return getPrefix() + "getTipByUserId" + userId;
}
public static final long getTipByOtherKeyExpires = 1L;
public String getTipByOtherKey(int userId) {
return getPrefix() + "_getTipByUserId_" + userId;
}
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
你的每个需要缓存的类都有userId这个数据吗? 不知道你的业务类如何设计。一个原则,就是KISS(Keep It Simple and Stupid). 不知道为什么你需要两个方法(getTipByOtherKey, getTipByUserId)来生成key。也许你可以像这么做:
//如果有必要,也可以做成接口
public abstract class CachableObject {
public String getKey() {
StringBuffer sb = new StringBuffer();
sb.append("data_").append(getClass().getSimpleName());
sb.append("_").append(getUserId());
return sb.toString();
}
public abstract int getUserId();
}