一、封装redis的操作。编写RedisUtil.java,也可以不做封装直接使用redisTemplate对象。
package com.mywind.eemp.utils.database; import org.apache.log4j.Logger; import org.springframework.data.redis.core.ListOperations; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.data.redis.core.SetOperations; import org.springframework.data.redis.core.ValueOperations; import java.io.Serializable; import java.util.List; import java.util.Set; import java.util.concurrent.TimeUnit; /** * Created by A03742 on 2017-07-17. */ public class RedisUtil { //redis 操作属性 public RedisTemplate redisTemplate; public void setRedisTemplate(RedisTemplate redisTemplate) { this.redisTemplate = redisTemplate; } public Logger log = Logger.getLogger(RedisUtil.class.getName()); /** * 设置字符串到Redis缓存 * * @param key 键 * @param value 值 */ public boolean setStringValue(String key, String value) { return setStringValue(key, value, -1); } /** * 设置字符串到Redis缓存,设置过期时间 * * @param key 键 * @param value 值 * @param time 失效时间 */ public boolean setStringValue(String key, String value, long time) { try { ValueOperations<String, String> valueOps = redisTemplate.opsForValue(); valueOps.set(key, value); if (time > 0) redisTemplate.expire(key, time, TimeUnit.SECONDS); return true; } catch (Throwable t) { log.error("缓存[" + key + "]失败, value[" + value + "]", t); } return false; } /** * 从redis 缓存获取字符串值 * * @param key 键 * @return String值 */ public String getStringValue(String key) { try { ValueOperations<String, String> valueOps = redisTemplate.opsForValue(); return valueOps.get(key); } catch (Throwable t) { log.error("获取缓存失败key[" + key + ", error[" + t + "]"); } return null; } /** * 设置字符串到Redis缓存 * * @param key 键 * @param value 值 */ public boolean setIntValue(String key, int value) { return setIntValue(key, value, -1); } /** * 设置字符串到Redis缓存,设置过期时间 * * @param key 键 * @param value 值 * @param time 失效时间 单位:秒 */ public boolean setIntValue(String key, int value, long time) { try { ValueOperations<String, Integer> valueOps = redisTemplate.opsForValue(); valueOps.set(key, value); if (time > 0) redisTemplate.expire(key, time, TimeUnit.SECONDS); return true; } catch (Throwable t) { log.error("缓存[" + key + "]失败, value[" + value + "]", t); } return false; } /** * 从redis 缓存获取字符串值 * * @param key 键 * @return String值 */ public Integer getIntValue(String key) { try { ValueOperations<String, Integer> valueOps = redisTemplate.opsForValue(); return valueOps.get(key); } catch (Throwable t) { log.error("获取缓存失败key[" + key + ", error[" + t + "]"); } return null; } /** * 设置double到Redis缓存 * * @param key 键 * @param value 值 */ public boolean setDoubleValue(String key, double value) { return setDoubleValue(key, value, -1); } /** * 设置double到Redis缓存,设置过期时间 * * @param key 键 * @param value 值 * @param time 失效时间 单位:秒 */ public boolean setDoubleValue(String key, double value, long time) { try { ValueOperations<String, Double> valueOps = redisTemplate.opsForValue(); valueOps.set(key, value); if (time > 0) redisTemplate.expire(key, time, TimeUnit.SECONDS); return true; } catch (Throwable t) { log.error("缓存[" + key + "]失败, value[" + value + "]", t); } return false; } /** * 从redis 缓存获取Double值 * * @param key 键 * @return String值 */ public Double getDoubleValue(String key) { try { ValueOperations<String, Double> valueOps = redisTemplate.opsForValue(); return valueOps.get(key); } catch (Throwable t) { log.error("获取缓存失败key[" + key + ", error[" + t + "]"); } return null; } /** * 设置 list到缓存 * * @param key 键 * @param list 值 * @return 布尔型 true:成功 false:失败 */ public boolean setList(String key, List list) { return setList(key, list, -1); } /** * 设置 list到缓存 * * @param key 键 * @param value 值 * @param time 失效时间 秒 * @return 布尔型 true:成功 false:失败 */ public boolean setList(String key, List value, long time) { try { ListOperations listOps = redisTemplate.opsForList(); listOps.rightPushAll(key, value); if (time > 0) { redisTemplate.expire(key, time, TimeUnit.SECONDS); } return true; } catch (Throwable t) { log.error("缓存[" + key + "]失败, value[" + value + "]", t); } return false; } /** * 获取list 的大小 * * @param key 键 * @return long list大小 */ public long getListSize(String key) { try { ListOperations<String, String> listOps = redisTemplate.opsForList(); return listOps.size(key); } catch (Throwable t) { log.error("获取list长度失败key[" + key + "], error[" + t + "]"); } return 0; } /** * 获取List 对象 * * @param key 键 * @param start 开始下标 * @param end 结束下标 * @return List */ public List getList(String key, long start, long end) { try { ListOperations<String, Serializable> listOps = redisTemplate.opsForList(); return listOps.range(key, start, end); } catch (Throwable t) { log.error("获取list缓存失败key[" + key + ", error[" + t + "]"); } return null; } /** * 缓存set操作 * * @param key 键 * @param v 值 * @param time 失效时间,秒 * @return 布尔型 true:成功 false:失败 */ protected boolean cacheSet(String key, String v, long time) { try { SetOperations<String, String> valueOps = redisTemplate.opsForSet(); valueOps.add(key, v); if (time > 0) redisTemplate.expire(key, time, TimeUnit.SECONDS); return true; } catch (Throwable t) { log.error("缓存[" + key + "]失败, value[" + v + "]", t); } return false; } /** * 缓存set * * @param k 键 * @param v 值 * @return 布尔型 true:成功 false:失败 */ protected boolean cacheSet(String k, String v) { return cacheSet(k, v, -1); } /** * 缓存set * * @param key 键 * @param v 值 * @param time 失效时间 * @return 布尔型 true:成功 false:失败 */ protected boolean cacheSet(String key, Set<String> v, long time) { try { SetOperations<String, String> setOps = redisTemplate.opsForSet(); setOps.add(key, v.toArray(new String[v.size()])); if (time > 0) redisTemplate.expire(key, time, TimeUnit.SECONDS); return true; } catch (Throwable t) { log.error("缓存[" + key + "]失败, value[" + v + "]", t); } return false; } /** * 缓存set * * @param key 键 * @param v 值 * @return 布尔型 true:成功 false:失败 */ protected boolean cacheSet(String key, Set<String> v) { return cacheSet(key, v, -1); } /** * 获取缓存set数据 * * @param key 键 * @return Set */ protected Set<String> getSet(String key) { try { SetOperations<String, String> setOps = redisTemplate.opsForSet(); return setOps.members(key); } catch (Throwable t) { log.error("获取set缓存失败key[" + key + ", error[" + t + "]"); } return null; } /** * 判断缓存是否存在 * * @param key 键 * @return boolean true:key存在 false:key 不存在 */ public boolean containsKey(String key) { try { return redisTemplate.hasKey(key); } catch (Throwable t) { log.error("判断缓存存在失败key[" + key + ", error[" + t + "]"); } return false; } /** * 移除缓存 * * @param key 键 * @return boolean true:移除成功 false:移除失败 */ public boolean remove(String key) { try { redisTemplate.delete(key); return true; } catch (Throwable t) { log.error("获取缓存失败key[" + key + ", error[" + t + "]"); } return false; } }
二、在应用代码中使用。
//设置值到redis 指定60秒后过期 redisUtil.setDoubleValue(RedisKeyEnum.DEFAULT_KEY.getKey() + doubleData.getId(), doubleData.getValue(), 60); //从redis中获取指定key的值
redisUtil.getDoubleValue(RedisKeyEnum.DEFAULT_KEY.getKey() + doubleData.getId());
相关推荐
在Java开发中,Spring框架与Redis的整合是一个常见的需求,特别是在构建高性能、高并发的应用时。Redis是一款开源的、基于键值对的数据存储系统,它提供了高速的数据读写能力,适用于缓存、消息队列等多种场景。而...
标题“redis整合tomcat8”涉及的是在Java Web开发中,如何将Redis缓存系统与Tomcat应用服务器集成,以优化session管理。Redis通常用于缓解服务器内存压力,提高Web应用程序的性能,特别是处理大量并发用户时。以下是...
Java EE互联网轻量级框架整合开发,主要集中在SSM框架的使用上,即Spring MVC、Spring和MyBatis的集成,以及Redis缓存技术的引入。这个主题旨在提高Web应用的开发效率,优化性能,同时降低项目的复杂度。 首先,...
Spring MVC 是一个强大的Java web开发框架,用于构建可维护、高性能的Web应用程序。Redis则是一个高性能的键值数据存储系统,常被用作缓存和消息代理,以提高应用程序的性能。Spring Data Redis是Spring Framework的...
**SpringBoot项目SSM+Redis整合** 在现代Web开发中,SpringBoot因其便捷的配置、快速的开发体验而被广泛采用。本项目是基于SpringBoot框架进行构建的,旨在实现SSM(Spring、SpringMVC、Mybatis)的经典组合与Redis...
"redis整合tomcat7"的主题涉及到如何将流行的开源缓存系统Redis与Java Web容器Tomcat结合,以便实现更高效的session管理。这是一项常见的优化策略,因为Redis可以提供高可用性和可扩展性,同时减轻了传统session存储...
SSM Redis整合是一个常见的Java Web开发中的集成方案,它涵盖了Spring、Spring MVC、MyBatis以及Redis这四个关键组件。在此项目中,开发者选择的是Spring 5.1.1、MyBatis 3.4.1和Druid作为数据源管理工具,与MySQL...
SpringBoot与Redis整合是现代Java开发中常见的技术组合,尤其适用于构建高性能、高并发的Web应用。SpringBoot简化了配置和集成第三方库的过程,而Redis则作为内存数据存储,提供了高速的数据读写能力。以下是对这个...
基于ssm整合redis的工具类编写,内容详细。
【微服务SpringBoot整合Redis基于Redis的Stream消息队列实现异步秒杀下单】这篇文章主要讲解了如何在微服务环境中,使用SpringBoot框架与Redis相结合,通过Redis的Stream功能来构建一个高效的消息队列,以实现异步...
在Java与Redis整合中,对象池(如连接池)是非常重要的优化手段。Redis客户端Jedis使用连接池来复用已建立的网络连接,避免频繁创建和销毁连接带来的性能开销。Apache Commons Pool提供了基础的池化逻辑,包括对象的...
在IT行业中,SSH(Spring、Struts2、Hibernate)是一个经典的Java Web开发框架组合,而Redis则是一个高性能的键值存储系统,常用于缓存和数据持久化。将SSH与Redis整合,可以提升应用程序的性能和响应速度。下面将...
在Maven项目中,可以在pom.xml文件中添加`spring-data-redis`和`jedis`库,这两个库分别提供了Spring对Redis的支持和Jedis,一个Java客户端连接Redis。 ```xml <groupId>org.springframework.data <artifactId>...
SSH框架指的是Struts、Spring和Hibernate三个开源项目的组合,它们分别负责表现层、控制层和持久层,是Java Web开发中常用的三大框架。而Redis是一种高性能的键值存储系统,常用于缓存数据,提高应用性能。 整合SSH...
本文将详细解析"spring+redis整合demo"中的关键知识点,帮助你理解如何将Spring与Redis结合使用。 1. **Spring框架**:Spring是一个开源的Java平台,它简化了开发过程,提供了全面的编程和配置模型。Spring的核心...
SpringBoot以其快速启动和低耦合的特性,已经成为现代Java Web开发的首选。 Shiro是Apache基金会的一个开源项目,主要用于解决应用程序的安全问题,包括认证、授权、会话管理和加密等。它的设计目标是简单易用,...
总的来说,SpringBoot、Mybatis和Redis的整合为Java开发者提供了一个强大、灵活且高效的开发环境,它可以帮助我们构建出高可用、高性能的Web应用。通过深入理解这三个组件以及它们之间的协同工作,开发者可以更好地...
整合SSM和Redis的过程涉及到Java Web开发、Spring框架、SpringMVC、MyBatis以及Redis缓存等多个技术领域,对于提升系统的可扩展性和性能有着显著的作用。同时,这也要求开发者对这些技术有深入的理解,以便更好地...
Java Redis Jar 指的是Java语言与Redis数据库交互所使用的库文件,主要包含Spring框架整合Redis所需的依赖。Redis是一款高性能的键值存储系统,常用于数据缓存、消息队列等场景,而Java作为广泛使用的编程语言,通过...
Spring Boot以其便捷的配置和快速的应用开发而受到广泛欢迎,Redis是高性能的内存数据结构存储,常用于缓存和消息中间件,而RabbitMQ则是一个稳定且功能丰富的消息队列系统,能够实现异步处理和解耦应用程序。...