redis—Spring中redis缓存的简单使用
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>2.8.0</version>
</dependency>
package com.del.tools;
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool; /**
* 用于缓存的数据访问对象
* @author Domi
*/
public class RedisAPI { //引入jedis连接池对象
public JedisPool jedisPool;
public JedisPool getJedisPool() {
return jedisPool;
}
public void setJedisPool(JedisPool jedisPool) {
this.jedisPool = jedisPool;
} /**
* 缓存的设置
*/
public boolean set(String key,String value){
Jedis jedis = null;
try {
jedis = jedisPool.getResource();
jedis.set(key,value);
return true;
} catch (Exception e) {
// TODO: handle exceptionr
e.printStackTrace();
}finally{
returnResource(jedisPool, jedis);
}
return false;
} /**
* 判断缓存中是否存在某个key值
*/
public boolean exist(String key){
Jedis jedis =null;
try {
jedis = jedisPool.getResource();
return jedis.exists(key);
} catch (Exception e) {
// TODO: handle exception
}finally{
returnResource(jedisPool, jedis);
System.out.println("关闭成功===》");
}
return false;
} /**
* 获得缓存中的key
*/
public String get(String key){
String value = null;
Jedis jedis =null;
try {
jedis = jedisPool.getResource();
value = jedis.get(key);
} catch (Exception e) {
// TODO: handle exception
}finally{
returnResource(jedisPool, jedis);
}
return value;
} /**
* 返还jedisPool
*/
public static void returnResource(JedisPool jedisPool,Jedis jedis){
if (jedis!=null) {
jedisPool.returnResource(jedis);
}
}
}
<!-- jedis连接池配置-->
<bean id="jedisPoolConfig" class="redis.clients.jedis.JedisPoolConfig">
<property name="maxTotal" value="1000"/> <!-- 控制一个pool可分配多少个jedis实例 -->
<property name="maxIdle" value="200" /> <!-- 控制一个pool最多有多少个状态为idle(空闲)的jedis实例 -->
<property name="maxWaitMillis" value="2000" /> <!-- 表示当borrow一个jedis实例时,最大的等待时间,如果超过等待时间,则直接抛出JedisConnectionException -->
<property name="testOnBorrow" value="true" /> <!-- 在borrow一个jedis实例时,是否提前进行validate操作;如果为true,则得到的jedis实例均是可用的 -->
</bean> <!-- 连接jedis服务器 -->
<bean id="jedisPool" class="redis.clients.jedis.JedisPool" destroy-method="destroy">
<constructor-arg ref="jedisPoolConfig"/>
<constructor-arg value="127.0.0.1"/>
<constructor-arg value="6379"/>
</bean> <!-- 配置redisAPI -->
<bean id="redisAPI" class="com.del.tools.RedisAPI">
<property name="jedisPool" ref="jedisPool"/>
</bean>
/*
* 根据userID查询购物车列表
* 使用redis缓存
*/
@RequestMapping(value="/list")
public ModelAndView doBuyCarList(HttpSession session){ ModelAndView madnv = new ModelAndView();
User user = (User)session.getAttribute("hasLogin");
if(user!=null){ //先判斷redis裡面有沒有值
List<BuyCar> buycarlist1 = null;
buycarlist1 = buyCarService.findBuyCarList(user.getUserid());
String buycarlist = JSON.toJSONString(buycarlist1,true);
redisAPI.set("carlist"+user.getUserid(), buycarlist);
madnv.addObject("buycarlist", buycarlist1);
System.out.println("buycarlist====="+buycarlist1);
System.out.println("FROM DB==>"); }else{
String buycarlist = redisAPI.get("carlist"+user.getUserid());
if (buycarlist!=null && !"".equals(buycarlist)) {
buycarlist1 =JSON.parseArray(buycarlist, BuyCar.class);
madnv.addObject("buycarlist", buycarlist1);
System.out.println("buycarlist====="+buycarlist);
System.out.println("FROM REDIS==>");
}else{
System.out.println("error==>");
}
}
}
madnv.setViewName("buycar/shopping.jsp");
return madnv;
}
redis—Spring中redis缓存的简单使用的更多相关文章
- 分布式数据存储 之 Redis(二) —— spring中的缓存抽象
分布式数据存储 之 Redis(二) -- spring中的缓存抽象 一.spring boot 中的 StringRedisTemplate 1.StringRedisTemplate Demo 第 ...
- java项目中ehcache缓存最简单用法
java项目中ehcache缓存最简单用法: 1.下载ehcache-core-2.4.3.jar复制到项目的lib目录下 2.新建ehcache.xml文件,放置在项目src目录下的resour ...
- 浅析redis缓存 在spring中的配置 及其简单的使用
一:如果你需要在你的本地项目中配置redis.那么你首先得需要在你的本地安装redis 参考链接[http://www.runoob.com/redis/redis-install.html] 下载r ...
- spring中使用缓存
一.启用对缓存的支持 Spring 对缓存的支持最简单的方式就是在方法上添加@Cacheable和@CacheEvict注解, 再添加注解之前,必须先启用spring对注解驱动的支持,基于java的配 ...
- spring中配置缓存—ehcache
常用的缓存工具有ehcache.memcache和redis,这里介绍spring中ehcache的配置. 1.在pom添加依赖: <!-- ehcache 相关依赖 --> <de ...
- Spring中ClassPathXmlApplicationContext类的简单使用
转自:http://www.cnblogs.com/shyy/archive/2011/09/29/2453057.html 一.简单的用ApplicationContext做测试的话,获得Sprin ...
- spring中的缓存--Caching
1.spring从3.1开始支持缓存功能.spring 自带的缓存机制它只在方法上起作用,对于你使用其他持久化层的框架来讲,是没有影响的,相对来讲这种缓存方式还是不错的选择. 2.提供缓存的接口:or ...
- 转:spring中InitailizingBean接口的简单理解
转自:https://www.cnblogs.com/wxgblogs/p/6849782.html spring中InitializingBean接口使用理解 InitializingBean接 ...
- spring中redistemplate不能用通配符keys查出相应Key的问题
有个业务中需要删除某个前缀的所有Redis缓存,于是用RedisTemplate的keys方法先查出所有合适的key,再遍历删除.但是在keys(patten+"*")时每次取出的 ...
随机推荐
- GIS-ArcGIS 数据库备份还原
Create directory sdebak as 'E:\10_DataFile'; alter system set deferred_segment_creation=false; ALTER ...
- python 数据类型详解(转)
转自:http://www.cnblogs.com/linjiqin/p/3608541.html 目录1.字符串2.布尔类型3.整数4.浮点数5.数字6.列表7.元组8.字典9.日期 1.字符串1. ...
- GIS-005-Dojo & jQuery 事件处理
1.添加事件 dojo.connect(dojo.byId("SelectRect"), "onclick", function () { //todo }); ...
- 【渗透测试学习平台】 web for pentester -8.XML
example1: http://192.168.91.139/xml/example1.php?xml=%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%2 ...
- cocos2d-x游戏引擎核心之三——主循环和定时器
一.游戏主循环 在介绍游戏基本概念的时候,我们曾介绍了场景.层.精灵等游戏元素,但我们却故意避开了另一个同样重要的概念,那就是游戏主循环,这是因为 Cocos2d 已经为我们隐藏了游戏主循环的实现.读 ...
- Oracle12c Release1安装图解(详解)
工具/原料 Windows系统平台 Oracle12cR1数据库软件 方法/步骤 1 我的机器基础环境:Windows8(x64) + Oracle11g Release2(x64): 初次全 ...
- Solr服务搭建
1.1. Solr的环境 Solr是java开发. 需要安装jdk. 安装环境Linux. 需要安装Tomcat. 1.2. 搭建步骤 第一步:把solr 的压缩包上传到Linux系统 第二步:解压s ...
- MQTT的学习研究(十)【转】mosquitto——一个开源的mqtt代理
MQTT(MQ Telemetry Transport),消息队列遥测传输协议,轻量级的发布/订阅协议,适用于一些条件比较苛刻的环境,进行低带宽.不可靠或间歇性的通信.值得一提的是mqtt提供三种不同 ...
- Python学习之k-近邻算法
1. K-近邻算法 # coding=utf-8 from numpy import * import operator def createDataSet(): group = array([[1. ...
- html5实现的一些效果
一.网页换肤 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <ti ...