这里使用的是 Spring-4.3 , redis-2.8 的版本
 
1、添加maven依赖
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>2.8.0</version>
</dependency>
2、编写自己的redisAPI

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);
}
}
}
 
3、用spring管理redis的bean组件

<!-- 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>
 
4、在业务中使用redisAPI
/*
* 根据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缓存的简单使用的更多相关文章

  1. 分布式数据存储 之 Redis(二) —— spring中的缓存抽象

    分布式数据存储 之 Redis(二) -- spring中的缓存抽象 一.spring boot 中的 StringRedisTemplate 1.StringRedisTemplate Demo 第 ...

  2. java项目中ehcache缓存最简单用法

      java项目中ehcache缓存最简单用法: 1.下载ehcache-core-2.4.3.jar复制到项目的lib目录下 2.新建ehcache.xml文件,放置在项目src目录下的resour ...

  3. 浅析redis缓存 在spring中的配置 及其简单的使用

    一:如果你需要在你的本地项目中配置redis.那么你首先得需要在你的本地安装redis 参考链接[http://www.runoob.com/redis/redis-install.html] 下载r ...

  4. spring中使用缓存

    一.启用对缓存的支持 Spring 对缓存的支持最简单的方式就是在方法上添加@Cacheable和@CacheEvict注解, 再添加注解之前,必须先启用spring对注解驱动的支持,基于java的配 ...

  5. spring中配置缓存—ehcache

    常用的缓存工具有ehcache.memcache和redis,这里介绍spring中ehcache的配置. 1.在pom添加依赖: <!-- ehcache 相关依赖 --> <de ...

  6. Spring中ClassPathXmlApplicationContext类的简单使用

    转自:http://www.cnblogs.com/shyy/archive/2011/09/29/2453057.html 一.简单的用ApplicationContext做测试的话,获得Sprin ...

  7. spring中的缓存--Caching

    1.spring从3.1开始支持缓存功能.spring 自带的缓存机制它只在方法上起作用,对于你使用其他持久化层的框架来讲,是没有影响的,相对来讲这种缓存方式还是不错的选择. 2.提供缓存的接口:or ...

  8. 转:spring中InitailizingBean接口的简单理解

    转自:https://www.cnblogs.com/wxgblogs/p/6849782.html spring中InitializingBean接口使用理解   InitializingBean接 ...

  9. spring中redistemplate不能用通配符keys查出相应Key的问题

    有个业务中需要删除某个前缀的所有Redis缓存,于是用RedisTemplate的keys方法先查出所有合适的key,再遍历删除.但是在keys(patten+"*")时每次取出的 ...

随机推荐

  1. Extjs学习笔记--(五,事件)

    Extjs中事件包括浏览器事件(单机按钮,鼠标移动等触发)和内部事件(组件之间的联动) 绑定浏览器事件的过程Ext.EventManager 要为元素绑定事件,通常会使用EventManager.on ...

  2. SVN常用命令与分支操作

    1.基本操作 1.0 创建版本库: Svnadmin create /data/repos 2.0 修改配置文件 Auth文件   [groups]   admin=shguo   [/]   @ad ...

  3. nil、Nil、NULL与NSNull的区别及应用

      总结 nil:OC中的对象的空指针 Nil:OC中类的空指针 NULL:C类型的空指针 NSNull:数值类的空对象 详细解析应用如下: 1.nil 指向一个对象的指针为空 在objc.h中的定义 ...

  4. WPS Word查询某些内容的出现次数

    1.CTRL+F 打开查找窗体

  5. JavaScript基础细讲

    JavaScript基础细讲   JavaScript语言的前身叫作Livescript.自从Sun公司推出著名的Java语言之后,Netscape公司引进了Sun公司有关Java的程序概念,将自己原 ...

  6. Java中DESKeySpec类

    此类位于 javax.crypto.spec 包下.声明如下: public class DESKeySpec extends Object implements KeySpec 此类指定一个 DES ...

  7. HTTP/2笔记之消息交换

    前言 无论是HTTP/1.*还是HTTP/2,HTTP的基本语义是不变的,比如方法语义(GET/PUST/PUT/DELETE),状态码(200/404/500等),Range Request,Cac ...

  8. devstack with neutron 参考文献

    http://networkstatic.net/installing-openstack-ml2-neutron-plugin-devstack-fedora/ https://wiki.opens ...

  9. 关于PreparedStatement.addBatch()方法 (转)

    Statement和PreparedStatement的区别就不多废话了,直接说PreparedStatement最重要的addbatch()结构的使用. 1.建立链接,(打电话拨号 ) Connec ...

  10. Atlassian Confluence任意文件读取漏洞

    Atlassian Confluence Atlassian Confluence是澳大利亚Atlassian公司的一套专业的企业知识管理与协同软件,也可以用于构建企业WiKi.该软件可实现团队成员之 ...