java项目中,针对缓存问题的处理方式【接口中的处理方式】
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);//添加缓存信息
}
java项目中,针对缓存问题的处理方式【接口中的处理方式】的更多相关文章
- Atitit 纯java项目的提升进度大法---通用json dsl接口
Atitit 纯java项目的提升进度大法---通用json dsl接口 1. Json dsl接口1 1.1. Url: http://aaa.com/api_jsondsl?dsl={}1 1. ...
- 根据从redis缓存的数据查询出来,在从数据库中取出所有的数据,俩个数据进行比较,去掉重复,剩下库中新插入的数据,取出新数据,然后把redis中的缓存数据清空把从数据库中查出来的所有数据放到redis缓存中
参考代码: public String getNewCenter(HttpServletRequest request,HttpServletResponse resonse){ JSONObject ...
- SpringBoot中Shiro缓存使用Redis、Ehcache
在SpringBoot中Shiro缓存使用Redis.Ehcache实现的两种方式实例 SpringBoot 中配置redis作为session 缓存器. 让shiro引用 本文是建立在你是使用这sh ...
- spring中配置缓存—ehcache
常用的缓存工具有ehcache.memcache和redis,这里介绍spring中ehcache的配置. 1.在pom添加依赖: <!-- ehcache 相关依赖 --> <de ...
- 分布式数据存储 之 Redis(二) —— spring中的缓存抽象
分布式数据存储 之 Redis(二) -- spring中的缓存抽象 一.spring boot 中的 StringRedisTemplate 1.StringRedisTemplate Demo 第 ...
- paip.批处理清理java项目冗余jar的方法
paip.批处理清理java项目冗余jar的方法 在myeclipse中开发的java项目遇到jar包冗余情况,如何删除项目中的冗余jar包啊?项目很大jar包一百多个. 2010-09-14 14: ...
- Java项目转换成Web项目
阐述:有时候我们在Eclipse中导入一个web项目,发现导入到项目中后变成一个Java项目,这让人很蛋疼.本篇主要讲述怎样将这个本该为web项目的Java项目变身回去,以及一些在导入过程中遇到的一些 ...
- django中的缓存 跨域问题(同源策略)
django缓存机制 在动态网站中,用户所有的请求,服务器都会去数据库中进行相应的增,删,查,改,渲染模板,执行业务逻辑,最后生成用户看到的页面. 当一个网站的用户访问量很大的时候,每一次的的后台操作 ...
- Java 8 接口中的默认方法与静态方法
Java 8 接口中的默认方法与静态方法 1. 接口中的默认方法 允许接口中包含具有具体实现的方法,该方法称"默认方法",默认方法使用用 default 关键字修饰. public ...
- django中的缓存
对于一个动态网站来说,用户的每次访问都意味着对服务器的一次开销,当该服务器的并发访问非常大时,对于一个动态网站来说,开销会非常的大.所以对于大中型web应用来说,减轻服务器的性能瓶颈就很有必要 对于d ...
随机推荐
- httprunner
https://cn.httprunner.org/quickstart/ httprunner官方 https://testerhome.com/opensource_projects/httpru ...
- django之表单类
一:表单类 一般我们在html中自己写的表单类似于下面的样子 <!DOCTYPE html> <html lang="en"> <head> & ...
- 初识Django之前端后端与数据库的配置
目录 一.静态文件配置 二.关于form表单的补充 三.post请求出现403问题 四.request方法初识 4.1判断当前请求方式 4.2request.POST与request.GET 五.py ...
- Docker(三):Docker入门教程-CentOS Docker 安装
CentOS Docker 安装 Docker支持以下的CentOS版本: CentOS 7 (64-bit) CentOS 6.5 (64-bit) 或更高的版本 前提条件 目前,CentOS 仅发 ...
- java获取当前时间的年周月季度等的开始结束时间
import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; /** * Created b ...
- BP神经网络设计
1.网络层数 大部分单个隐藏层即可 2.输入层神经元个数 输入变量的个数通常都是由问题的外部描述所确定的.例如,如果有4个外部变量作为网络的输入,那么网络就有4个输入.但是,这是不是意味着输入层的神经 ...
- PHP导出excel文件名中文IE乱码解决
<?php $ua = strtolower($_SERVER['HTTP_USER_AGENT']); if(preg_match('/msie/', $ua) || preg_match(' ...
- Codeforce |Educational Codeforces Round 77 (Rated for Div. 2) B. Obtain Two Zeroes
B. Obtain Two Zeroes time limit per test 1 second memory limit per test 256 megabytes input standard ...
- [转]Linux下防止进程使用swap及防止OOM机制导致进程被kill掉
首先解释两个概念:swap:在linux里面,当物理内存不够用了,而又有新的程序请求分配内存,那么linux就会选择将其他程序暂时不用的数据交换到物理磁盘上(swap out),等程序要用的时候再读进 ...
- 【转】C++ 模板类的声明与实现分离问题
链接如下: https://www.cnblogs.com/tonychen-tobeTopCoder/p/5199655.html