1、在service包中,分别建立了关于缓存的一系列的接口、类等,封装到一个工具包中;
临时缓存的接口(代码部分):
packagecom.tools;importjava.util.Date;public interfaceCacheTemplet {//设置添加永久缓存,(缓存唯一索引,缓存数据)
public voidaddCache(Object key,Object value);//设置添加缓存,不过需要有一个过期的时间毫秒数限制
public voidaddCache(Object key,Object value,Long duration);//设置添加缓存,需要有一个date类型的时间限制
public voidaddCache(Object key,Object value,Date expire);//获取缓存信息,根据key获取缓存信息
publicObject getCache(Object key);//删除缓存信息,根据key值进行删除
public voidDelCache(Object key);
}
2、再建立一个关于"缓存的工厂",用于获取缓存的实现,从工厂中获取到缓存对象,然后从缓存对象中对缓存信息进行操作(获取也好,删除也可以);
packagecom.tools;//缓存工厂
public classCacheFactory {//无参构造器
privateCacheFactory(){ }//私有的成员变量
private CacheTemplet cacheTemplet = null;//获取JVM缓存(未写完)public CacheTemplet GetCache(){....}//获取缓存
public CacheTemplet GetCache(CacheEnum cacheEnum){...}
//Redis连接池
private RedisPool redisPool;
//接下来就是相应的set方法,没有用到get方法,
public void setRedisPool(RedisPool redisPool){...}
private static CacheFactory cacheFactory = null;
//获取缓存工厂
public static CacheFactory GetCacheFactory() {...}
.
.
.
.
........
}
3、然后在相应的service实现类中,具体的使用方法如下:java代码
//获取距离用户最近的饭店
public List> putSale(final String product,final String userTell){
//首先从实例化缓存临时对象
CacheTemplet cacheTemplet = CacheFactory.GetCacheFactory().GetCache(
CacheEnum.Redis);//临时缓存,获取缓存工厂,获取缓存实现
//在创建缓存实体类对象
List> storeInRe = new ArrayList>() ;
.....
Map e = new HashMap();
e.put("yxwddh", yxwddh); // 饭店电话
storeInRe.add(e);//添加缓存信息
}
原文:http://www.cnblogs.com/FanSunny/p/4875380.html