zoukankan      html  css  js  c++  java
  • java项目中,针对缓存问题的处理方式【接口中的处理方式】

    1、在service包中,分别建立了关于缓存的一系列的接口、类等,封装到一个工具包中;

    1. 临时缓存的接口(代码部分):
    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);//添加缓存信息
    }
    

      

  • 相关阅读:
    cloud-api-service和cloud-iopm-web提交merge方法
    Java知识点-判断null、空字符串和空格
    Windows本机搭建Redis
    api-gateway-engine知识点(2)
    能够提高开发效率的Eclipse实用操作
    IOP知识点(2)
    获取分辨率及dp/px换算
    Android软件自动更新(自定义处理,不使用第三方)
    友盟自动更新参数详解
    [Android]ping -c 1 -w 100 sina.cn的解析
  • 原文地址:https://www.cnblogs.com/FanSunny/p/4875380.html
Copyright © 2011-2022 走看看