• 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);//添加缓存信息
    }
    

      

  • 相关阅读:
    年末反思
    Flink运行时架构
    Phoenix 启动报错:Error: ERROR 726 (43M10): Inconsistent namespace mapping properties. Cannot initiate connection as SYSTEM:CATALOG is found but client does not have phoenix.schema.
    Clickhouse学习
    Flink简单认识
    IDEA无法pull代码到本地,Can't Update No tracked branch configured for branch master or the branch doesn't exist.
    第1章 计算机系统漫游
    简单的 Shell 脚本入门教程
    开源≠免费 常见开源协议介绍
    MySQL 视图
  • 原文地址:https://www.cnblogs.com/FanSunny/p/4875380.html
Copyright © 2020-2023  润新知