第一步:添加需要的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. JZOJ.5230【NOIP2017模拟8.5】队伍统计

    Description 现在有n个人要排成一列,编号为1->n .但由于一些不明原因的关系,人与人之间可能存在一些矛盾关系,具体有m条矛盾关系(u,v),表示编号为u的人想要排在编号为v的人前面 ...

  2. docker 从容器中拷文件到宿主机器中

    sudo docker cp 1d051604e0ea:/root/data /home/developer/zhanghui/data

  3. mac同时安装多个jdk

    DK8 GA之后,小伙伴们喜大普奔,纷纷跃跃欲试,想体验一下Java8的Lambda等新特性,可是目前Java企业级应用的主打版本还是JDK6, JDK7.因此,我需要在我的电脑上同时有JDK8,JD ...

  4. string 转 java对象、转map的方式

    1.使用fastJson 将String转 map: String out; Object succesResponse = JSON.parse(out);    //先转换成Object Map ...

  5. Outlook Top of Information Store

    Actually I got to thinking this might make a good blog post so I took a closer look - Try this: On t ...

  6. mybatis框架(三)

    mybatis框架

  7. 借鉴+总结!! mysql 客户端命令行下 查询数据并生成文件导出

    方式1:在mysql命令行环境下执行: sql语句+INTO OUTFILE +文件路径/文件名 +编码方式(可选)  例如: select * from user  INTO OUTFILE  '/ ...

  8. JVM虚拟机—JVM的垃圾回收机制(转载)

    1.前言 理解JVM的垃圾回收机制(简称GC)有什么好处呢?作为一名软件开发者,满足自己的好奇心将是一个很好的理由,不过更重要的是,理解GC工作机制可以帮助你写出更好的Java程序. 在学习GC前,你 ...

  9. HDFS各个进程存储在磁盘上的数据含义和注意事项

    本文地址:http://www.cnblogs.com/qiaoyihang/p/6293402.html (一)Namenode的目录结构 HDFS进行初次格式化之后将会在$dfs.namenode ...

  10. Python中的lambda、map和filter

    翻译.修改自https://medium.com/@happymishra66/lambda-map-and-filter-in-python-4935f248593 1.lambda lambda运 ...