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 ...
随机推荐
- 1--面试总结-js深入理解,对象,原型链,构造函数,执行上下文堆栈,执行上下文,变量对象,活动对象,作用域链,闭包,This
参考一手资料:http://dmitrysoshnikov.com/ecmascript/javascript-the-core/中文翻译版本:https://zhuanlan.zhihu.com/p ...
- Centos7.5 ZABBIX4.0.3版本的编译安装
Zabbix监控的搭建理论 1. Zabbix Server会去采集监控数据,采集的监控数据会写入到SQL数据库 2. Zabbix的WEB后端采用php语言开发,所有配置信息.用 ...
- pip install mysql_python报错解决办法
首先请注意,mysql_python只支持Python2,所以假如你是python3,就直接用python-connector去吧.下面这一条命令就可以了 pip install mysql-conn ...
- 2.k8s资源清单
一.常见资源对象 常见的资源对象:(包括但不仅限于) l Workload: Pod,ReplicaSet,Deployment,StatefulSet,DaemonSet,Job,Cronjob ...
- java8 时间日期操作包总结
- ie下,首页打开页面非常慢
手里的项目,登录页面在IE下首次进入页面非常的慢,应该不只是登录页面,因为项目我也是半路接手的.开始以为是js的问题,后台把所有的代码都去掉,就一个空白的页面,然后慢慢的试试,最后才发现是一个CSS文 ...
- Day_02-Python的分支结构和循环结构
分支结构 应用场景 迄今为止,我们写的Python代码都是一条一条语句顺序执行,这种结构的代码我们称之为顺序结构.然而仅有顺序结构并不能解决所有的问题,比如我们设计一个游戏,游戏第一关的通关条件是玩家 ...
- java 如何实现大文件上传下载(传输)各种格式
我们平时经常做的是上传文件,上传文件夹与上传文件类似,但也有一些不同之处,这次做了上传文件夹就记录下以备后用. 首先我们需要了解的是上传文件三要素: 1.表单提交方式:post (get方式提交有大小 ...
- B/S大文件下载+断点续传
1.先将 webuploader-0.1.5.zip 这个文件下载下来:https://github.com/fex-team/webuploader/releases 根据个人的需求放置自己需要的 ...
- php 单示例编程
<?php defined('SYSPATH') or die('No direct script access.'); class Kohana_BOTA { //私有构造方法,防止再次实例化 ...