1、在service包中,分别建立了关于缓存的一系列的接口、类等,封装到一个工具包中;
- 临时缓存的接口(代码部分):
package com.tools; import java.util.Date; public interface CacheTemplet { //设置添加永久缓存,(缓存唯一索引,缓存数据) public void addCache(Object key,Object value); //设置添加缓存,不过需要有一个过期的时间毫秒数限制 public void addCache(Object key,Object value,Long duration); //设置添加缓存,需要有一个date类型的时间限制 public void addCache(Object key,Object value,Date expire); //获取缓存信息,根据key获取缓存信息 public Object getCache(Object key); //删除缓存信息,根据key值进行删除 public void DelCache(Object key); }
2、再建立一个关于"缓存的工厂",用于获取缓存的实现,从工厂中获取到缓存对象,然后从缓存对象中对缓存信息进行操作(获取也好,删除也可以);
package com.tools; //缓存工厂 public class CacheFactory { //无参构造器 private CacheFactory(){ } //私有的成员变量 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<Map<String ,String>> putSale(final String product,final String userTell){ //首先从实例化缓存临时对象 CacheTemplet cacheTemplet = CacheFactory.GetCacheFactory().GetCache( CacheEnum.Redis);//临时缓存,获取缓存工厂,获取缓存实现 //在创建缓存实体类对象 List<Map<String,String>> storeInRe = new ArrayList<Map<String, String>>() ; ..... Map<String, String> e = new HashMap<String, String>(); e.put("yxwddh", yxwddh); // 饭店电话 storeInRe.add(e);//添加缓存信息 }
时间: 2024-10-06 00:23:11