第一步:添加需要的jar包

    <!-- redis -->
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>2.1.0</version>
</dependency>
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-redis</artifactId>
<version>1.0.3.RELEASE</version>
</dependency>

第二步:配置文件

redis.properties

#redis setting
redis.ip=127.0.0.1
redis.port=6379
redis.maxActive=1000
redis.maxIdle=100
redis.maxWait=1000
redis.testOnBorrow=true

spring-redis.xml

<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"> <bean id="poolConfig" class="redis.clients.jedis.JedisPoolConfig">
<property name="maxActive" value="${redis.maxActive}" />
<property name="maxIdle" value="${redis.maxIdle}" />
<property name="maxWait" value="${redis.maxWait}" />
<property name="testOnBorrow" value="${redis.testOnBorrow}" />
</bean>
<bean id="redisTemplate" class="org.springframework.data.redis.core.RedisTemplate">
<property name="connectionFactory" ref="connectionFactory" />
<property name="keySerializer">
<bean class="org.springframework.data.redis.serializer.StringRedisSerializer" />
</property>
<property name="valueSerializer">
<bean class="org.springframework.data.redis.serializer.JdkSerializationRedisSerializer" />
</property>
</bean>
<bean id="connectionFactory"
class="org.springframework.data.redis.connection.jedis.JedisConnectionFactory">
<property name ="hostName" value="${redis.ip}" />
<property name ="port" value="${redis.port}" />
<property name ="poolConfig" ref="poolConfig" />
</bean> <bean id="redisTemplateTool"
class="org.springframework.beans.factory.config.MethodInvokingFactoryBean">
<property name="targetClass" value="com.org.qin.common.utils.redis.RedisUtil" />
<property name="targetMethod" value="initRedis" />
<property name="arguments" ref="redisTemplate" />
</bean> </beans>

spring-bean.xml

<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="order" value="1"/>
<property name="ignoreUnresolvablePlaceholders" value="true"/>
<property name="locations">
<list>
<value>classpath:config/prop/redis.properties</value>
</list>
</property>
</bean>

 第三步:工具类

package com.org.qin.common.utils.redis;

import java.io.Serializable;
import java.util.concurrent.TimeUnit; import org.slf4j.LoggerFactory;
import org.springframework.data.redis.core.RedisTemplate; import com.org.qin.common.constants.RedisConstants; public class RedisUtil { private static RedisTemplate<String, Serializable> redisTemplate; public static void initRedis(RedisTemplate<String, Serializable> redisTemplate) {
RedisUtil.redisTemplate = redisTemplate;
} public static void expire(String key, int seconds) {
redisTemplate.expire(key, seconds, TimeUnit.SECONDS);
} public static void delete(String key) {
redisTemplate.delete(key);
Object object = redisTemplate.opsForValue().get(key);
System.out.println(object);
} public static Object getObject(String key) {
try{ return redisTemplate.opsForValue().get(key);
}
catch(Throwable e){
LoggerFactory.getLogger(RedisUtil.class).error("getObject", e);
}
return null;
} public static void setObject(String key, Serializable object) {
try{
redisTemplate.opsForValue().set(key, object, RedisConstants.DEFAULT_TIMEOUT_SECONDS, TimeUnit.SECONDS);
}
catch(Throwable e){
LoggerFactory.getLogger(RedisUtil.class).error("setObject", e);
}
} public static void setObject(String key, Serializable object, long timeout) {
try{
redisTemplate.opsForValue().set(key, object, timeout, TimeUnit.SECONDS);
}
catch(Throwable e){
LoggerFactory.getLogger(RedisUtil.class).error("setObject", e);
}
} }

第四步:测试类

package com.org.qin.controller.cache;

import java.io.Serializable;
import java.util.HashMap;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set; import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody; import com.org.qin.common.utils.redis.RedisUtil; @Controller
@RequestMapping("redis")
public class RedisController { /**
* 查询指定缓存
*
* @param request
* @return
*/
@RequestMapping("/getCache.htm")
@ResponseBody
public String getCache(HttpServletRequest request) {
Map<String, Object> params = getRequestParams(request);
return (String)RedisUtil.getObject((String)params.get("cacheKey")); } /**
* 删除缓存
*
* @param request
* @return
*/
@RequestMapping("/deleteCache.htm")
@ResponseBody
public String deleteCache(HttpServletRequest request, HttpServletResponse response) {
Map<String, Object> params = getRequestParams(request);
RedisUtil.delete((String)params.get("cacheKey"));
return "ok!";
} /**
* 添加缓存
*
* @param request
* @return
*/
@RequestMapping("/setCache.htm")
@ResponseBody
public String setCache(HttpServletRequest request, HttpServletResponse response) {
Map<String, Object> params = getRequestParams(request);
RedisUtil.setObject((String)params.get("cacheKey"), (Serializable)params.get("cacheData")); return "ok!";
} /**
* 功能描述: 获取请求参数
*
* @param request
* @return
*/
@SuppressWarnings("unchecked")
public static Map<String, Object> getRequestParams(HttpServletRequest request) {
Map<String, String[]> parameter = request.getParameterMap();
String[] obj;
Set<Entry<String, String[]>> entries = parameter.entrySet();
Map<String, Object> params = new HashMap<String, Object>(entries.size());
for(Map.Entry<String, String[]> m : entries){
obj = m.getValue();
params.put(m.getKey(), (obj.length > 1) ? obj : obj[0]);
}
return params;
}
}

测试地址

http://localhost:12342/derella-web/redis/getCache.htm?cacheKey=test

http://localhost:12342/derella-web/redis/setCache.htm?cacheKey=test&cacheData=testdata

http://localhost:12342/derella-web/redis/deleteCache.htm?cacheKey=test

spring整合redis配置的更多相关文章

  1. 网站性能优化小结和spring整合redis

    现在越来越多的地方需要非关系型数据库了,最近网站优化,当然从页面到服务器做了相应的优化后,通过在线网站测试工具与之前没优化对比,发现有显著提升. 服务器优化目前主要优化tomcat,在tomcat目录 ...

  2. Spring整合Redis&JSON序列化&Spring/Web项目部署相关

    几种JSON框架用法和效率对比: https://blog.csdn.net/sisyphus_z/article/details/53333925 https://blog.csdn.net/wei ...

  3. spring整合redis之hello

    1.pom.xml文件 <dependencies> <!-- spring核心包 --> <dependency> <groupId>org.spri ...

  4. Spring整合Redis时报错:java.util.NoSuchElementException: Unable to validate object

    我在Spring整合Redis时报错,我是犯了一个很低级的错误! 我设置了Redis的访问密码,在Spring的配置文件却没有配置密码这一项,配置上密码后,终于不报错了!

  5. Redis的安装以及spring整合Redis时出现Could not get a resource from the pool

    Redis的下载与安装 在Linux上使用wget http://download.redis.io/releases/redis-5.0.0.tar.gz下载源码到指定位置 解压:tar -xvf ...

  6. Spring整合redis实现key过期事件监听

    打开redis服务的配置文件   添加notify-keyspace-events Ex  如果是注释了,就取消注释 这个是在以下基础上进行添加的 Spring整合redis:https://www. ...

  7. Spring整合Redis,并配置Jedis连接池

    目录 只言片语 创建redis连接池的配置文件 单机版 spring整合redis(使用JedisPool) 项目中使用示例 集群版 spring整合redis(使用JedisCluster) 项目中 ...

  8. (转)Spring整合Redis作为缓存

           采用Redis作为Web系统的缓存.用Spring的Cache整合Redis. 一.关于redis的相关xml文件的写法 <?xml version="1.0" ...

  9. Spring整合redis,通过sentinel进行主从切换

    实现功能描述: redis服务器进行Master-slaver-slaver-....主从配置,通过2台sentinel进行failOver故障转移,自动切换,采用该代码完全可以直接用于实际生产环境. ...

随机推荐

  1. VMware虚拟机Host-Only(仅主机模式)

    转载于:https://www.linuxidc.com/Linux/2016-09/135521p3.htm 三.Host-Only(仅主机模式) Host-Only模式其实就是NAT模式去除了虚拟 ...

  2. Zend Studio 中创建简单的phpfile模板和xhtml类phpfile模板

    <!--简单的phpfile模板,带有创建时间和作者--><?php/*** ==============================================* @dat ...

  3. IIS7发布wcf服务遇到的问题

    如果没有上图所列出的asp.net 40,请在cmd中运行:C:\Windows\Microsoft.NET\Framework\V4.0.30319\aspnet_regiis -i 注:C:\Wi ...

  4. c#学习笔记之使用 TableLayoutPanel 控件设置窗体布局

    使用 TableLayoutPanel 控件设置窗体布局 在 Visual Studio IDE 左侧,找到“工具箱”选项卡. 选择“工具箱”选项卡,随即将显示工具箱.(或者,在菜单栏上,依次选择“视 ...

  5. iOS与导航相关的都在这

    // 设置导航背景图片 (一旦设置背景图片(变为不透明),透明层不起作用) [self.navigationBar setBackgroundImage:[UIImage imageNamed:@&q ...

  6. 解决:JQuery "Uncaught ReferenceError: $ is not defined"错误

    重登了一下emo项目,发现新建朋友功能出了问题:MultiValueDictKeyError.查看了一下报错提示,发现ajax中发送的数据包中少了两个参数. 于是调试js前端,发现console报错: ...

  7. 2.Access the mongo Shell Help-官方文档摘录

    总结: 1.使用help可以查看帮助信息db.help()  help等 2.查看对应的实现方法.比如 test@gzxkvm52$ db.updateUser function (name, upd ...

  8. 阿里巴巴 JAVA 开发手册

    阿里巴巴 JAVA 开发手册 1.0.0 阿里巴巴集团技术部 2016.12.7 首次向 Java 业界公开 一. 编程规约(一) 命名规约1. [强制]所有编程相关命名均不能以下划线或美元符号开始, ...

  9. linux c编程:记录锁

    记录锁相当于线程同步中读写锁的一种扩展类型,可以用来对有亲缘或无亲缘关系的进程进行文件读与写的同步,通过fcntl函数来执行上锁操作.尽管读写锁也可以通过在共享内存区来进行进程的同步,但是fcntl记 ...

  10. 系列文章(三):WAPI为无线局域网WLAN安全而生——By Me

    导读:无线局域网(又称为WLAN,Wireless Local Area Network),其应用领域不断拓展,无线接入所具有的前所未有的连接性和自动化能够为人们带来巨大的便利和商机.与此同时,在信息 ...