redis 集成到 spring 中
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:jee="http://www.springframework.org/schema/jee" xmlns:tx="http://www.springframework.org/schema/tx" xmlns:aop="http://www.springframework.org/schema/aop" xmlns:p="http://www.springframework.org/schema/p" xmlns:util="http://www.springframework.org/schema/util" xmlns:tool="http://www.springframework.org/schema/tool" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util.xsd http://www.springframework.org/schema/tool http://www.springframework.org/schema/tool/spring-tool.xsd"> <!-- other redis connection configuration begin--> <bean id="otherRedis" class="com.trace.db.otherredis.RedisEntry" scope="singleton" > <property name="hostName" value="127.0.0.1" /> <property name="portNumber" value="6379" /> <property name="password"><null/></property> </bean> <bean id="redisconnectionconfig" class="com.trace.db.otherredis.RedisConnectionConfigBean" scope="singleton" > <property name="hostConfig"> <list> <ref bean="otherRedis" /> </list> </property> </bean> <bean id="redisConnectionContext" class="com.trace.db.otherredis.RedisConnectionContext" scope="singleton" > <property name="redisConfig" ref="redisconnectionconfig"/> </bean> <!-- other redis connection configuration fin--> </beans>
package com.trace.db.otherredis; public class RedisEntry { private String hostName; private int portNumber; private String password; public RedisEntry() { setHostName("localhost"); setPortNumber(6379); setPassword(null); } public String getHostName() { return hostName; } public void setHostName(String hostName) { this.hostName = hostName; } public int getPortNumber() { return portNumber; } public void setPortNumber(int portNumber) { this.portNumber = portNumber; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } }
package com.trace.db.otherredis; import java.util.ArrayList; import java.util.List; import org.apache.log4j.Logger; import redis.clients.jedis.JedisPoolConfig; import redis.clients.jedis.JedisShardInfo; public class RedisConnectionConfigBean extends JedisPoolConfig { private Logger log = Logger.getLogger(RedisConnectionConfigBean.class); private static final int REDIS_MAX_ACTIVE = 1000; private static final int REDIS_MAX_IDLE = 60; private static final int REDIS_MAX_WAIT = 4000; private static final boolean REDIS_TEST_ON_BORROW = true; private List<RedisEntry> hostConfig = null; public RedisConnectionConfigBean() { super(); log.info("RedisConnectionConfigBean Constructor"); this.setMaxActive(RedisConnectionConfigBean.REDIS_MAX_ACTIVE); this.setMaxIdle(RedisConnectionConfigBean.REDIS_MAX_IDLE); this.setMaxWait(RedisConnectionConfigBean.REDIS_MAX_WAIT); this.setTestOnBorrow(RedisConnectionConfigBean.REDIS_TEST_ON_BORROW); } public List<JedisShardInfo> getShardList() { if(null == hostConfig || hostConfig.isEmpty()) { return null; } List<JedisShardInfo> reltList = new ArrayList<JedisShardInfo>(); for(RedisEntry entry : hostConfig) { JedisShardInfo localInfo = new JedisShardInfo(entry.getHostName(), entry.getPortNumber()); localInfo.setPassword(entry.getPassword()); log.info("JedisConnectionConfigBean getShardList entry for "+ entry.getHostName() + ":" + entry.getPortNumber()); reltList.add(localInfo); }//end for return reltList; } public void setHostConfig(List<RedisEntry> hostConfig) { log.info("JedisConnectionConfigBean setHostConfig"); this.hostConfig = hostConfig; } public List<RedisEntry> getHostConfig() { return hostConfig; } }
package com.trace.db.otherredis; import java.util.List; import java.util.Map; import org.apache.log4j.Logger; import redis.clients.jedis.ShardedJedis; import redis.clients.jedis.ShardedJedisPool; public class RedisConnectionContext { private Logger log = Logger.getLogger(RedisConnectionContext.class); private RedisConnectionConfigBean redisConfig = null; private ShardedJedisPool shardedJedisPool = null; /** * */ public RedisConnectionContext() { log.debug("JedisConnectionFactory constructor"); } private ShardedJedisPool getShardedJedisPool() { if(null == redisConfig) { log.error("getShardedJedisPool with null config"); return null; } if(null == shardedJedisPool) { log.error("getShardedJedisPool while no pool exist, create a new one"); shardedJedisPool = new ShardedJedisPool(redisConfig, redisConfig.getShardList()); } return shardedJedisPool; } private ShardedJedis getRedisConnection() { ShardedJedis localJedis = null; try { localJedis = this.getShardedJedisPool().getResource(); if(null == localJedis) { log.error("getRedisConnection: can NOT get instance"); } return localJedis; } catch (Exception e) { log.error("getRedisConnection Exception"); e.printStackTrace(); return null; } } @SuppressWarnings("unused") private void closeRedisConnection(ShardedJedis paramJedis) { if (null != paramJedis) { try { this.getShardedJedisPool().returnResource(paramJedis); } catch (Exception e) { log.error("closeRedisConnection Exception"); e.printStackTrace(); } } paramJedis = null; } // next operations public void setRedisMap(String taskId, Map<String, String> eventMap){ log.debug("setRedisMap: taskId: " + taskId); this.getRedisConnection().hmset(taskId,eventMap); } public List<String> getRedisMap(String taskId,String... field){ log.debug("getRedisMap: taskId: " + taskId + " field:" + field) ; return this.getRedisConnection().hmget(taskId,field); } public void setRedisConfig(RedisConnectionConfigBean paramJedisConfig) { redisConfig = paramJedisConfig; } public RedisConnectionConfigBean getRedisConfig() { return redisConfig; } }
log.info("init context: " + ProbServiceConfigs.SCTX_OTHER_REDIS_SUPPORT); ApplicationContext otherRedisContext = new ClassPathXmlApplicationContext(ProbServiceConfigs.SCTX_OTHER_REDIS_SUPPORT); paramContextEvent.getServletContext().setAttribute(ProbServiceConfigs.SCTX_OTHER_REDIS_SUPPORT, otherRedisContext); RedisConnectionContext redisCtx = (RedisConnectionContext) otherRedisContext.getBean("redisConnectionContext");
捐助开发者
在兴趣的驱动下,写一个免费
的东西,有欣喜,也还有汗水,希望你喜欢我的作品,同时也能支持一下。 当然,有钱捧个钱场(右上角的爱心标志,支持支付宝和PayPal捐助),没钱捧个人场,谢谢各位。
谢谢您的赞助,我会做的更好!
相关推荐
在IT行业中,Shiro、Redis和Spring的集成是构建高效、安全Web应用的常见实践。本项目是一个将Apache Shiro与Redis缓存系统整合到Spring框架中的实例,旨在提升应用程序的安全性和性能。以下是对这个项目及其相关技术...
首先,要集成Redis到Spring项目中,我们需要在项目的`pom.xml`文件中添加Redis的相关依赖,例如`spring-data-redis`和`lettuce`(Redis客户端): ```xml <groupId>org.springframework.data <artifactId>spring...
SpringCloud整合Redis缓存;版本:SpringCloud :Dalston.SR4;SpringBoot:1.5.14.RELEASE;Redis:3.2.0;Maven :3.5.3.代码下载下来即可用
spring-data-redis-1.6.2.RELEASE.jar spring与redis集成包 commons-pool2-2.4.2.jar 与redis连接池 spring-data-commons-2.0.0.RC2.jar spring数据包 redis-context.xml redis和spring配置,需要引用到自己项目的...
本文将详细介绍如何在Spring Boot项目中集成Redis和MyBatis,以实现数据缓存和数据库操作。 首先,为了在Spring Boot项目中引入Redis,我们需要在`pom.xml`文件中添加Spring Data Redis依赖: ```xml <groupId>...
Spring Redis集成使得我们在Spring应用中使用Redis变得更加简便,通过`RedisTemplate`我们可以方便地执行各种Redis操作,同时Spring Data Redis提供了丰富的API来支持更复杂的数据结构和功能。结合测试用例,我们...
spring和redis集成有很多方式,看到网上很多都是使用redistemplate自己去做redis 的一些操作,但是对于我们开发来说,肯定是使用越方便越好,于是乎就有了spring的对redis或者memcahe这些换成框架的封装,只需要引入...
Redis缓存+Spring的集成示例 Redis缓存+Spring的集成示例Redis缓存+Spring的集成示例 Redis缓存+Spring的集成示例
当我们谈论"redis集成spring实现aop"时,我们指的是如何将Redis缓存系统与Spring框架结合,并利用Spring的面向切面编程(AOP)功能来优化应用程序的性能。 首先,让我们深入了解Redis。Redis是一种内存数据结构存储...
"Spring3.0整合redis相关jar"这个主题主要涉及的是如何在Spring 3.0版本中集成Redis作为数据存储或缓存解决方案。Spring 3.0虽然相对较老,但在当时是广泛使用的版本,因此了解其与Redis的集成方式对维护旧项目或...
SpringCloud通过集成Spring Data Redis模块,使得在微服务架构中与Redis进行交互变得非常便捷。以下将详细介绍如何在SpringCloud中配置和使用Redis集群。 首先,你需要了解Redis集群的基本概念。Redis集群通过数据...
在本文中,我们将对SpringCache与Redis集成的优雅缓存解决方案进行详细介绍。 缓存是加速服务响应速度的一种非常有效并且简单的方式。在缓存领域,有很多知名的框架,如EhCache、Guava、HazelCast等。Redis作为key-...
SpringData与Redis集成是现代Java应用中常见的数据存储和缓存解决方案。SpringData是一个强大的框架,它简化了数据库访问,并提供了对多种数据存储技术的统一API。而Redis是一款开源、高性能的键值对数据存储系统,...
Spring Data Redis使得在Java应用中集成和操作Redis变得简单而优雅。 在1.7.6版本中,Spring Data Redis提供了一系列的改进和优化,以提升开发者的使用体验。以下将从几个关键点详细阐述这一版本的核心特性: 1. *...
在本项目中,"SpringMvc集成Redis项目完整...总结起来,这个项目是一个实践性强、易于学习的教程,涵盖了Spring MVC和Redis集成的各个方面,从配置到实际应用,再到测试验证,对想要掌握这一技术栈的开发者非常有帮助。
在SpringMVC中集成Spring Data Redis,可以利用Redis的高效特性来提升应用程序的数据处理能力,例如作为session共享的存储、缓存数据或者实现发布/订阅(Pub/Sub)功能。发布/订阅是一种通信模式,允许发送者(pub)将...
本文将深入探讨如何进行Redis与Spring的整合,并详细解析整合过程中的关键步骤。 首先,我们要理解Spring对数据源的支持。Spring提供了多种数据源抽象,包括JdbcTemplate、JPA、MyBatis等。为了整合Redis,我们需要...
在现代Web应用开发中,Spring MVC作为主流的MVC框架,常常需要与各种持久层技术进行集成以提高数据处理效率。Redis,一个高性能的键值存储系统,常被用于缓存、消息队列等场景。将Spring MVC与Redis结合,可以有效...
在企业级应用中,Spring 提供的缓存抽象使得集成各种缓存系统变得简单,其中包括 Redis。 集成 Redis 与 Spring 的主要目的是利用 Redis 的高性能和分布式特性来提升应用程序的响应速度和并发处理能力。Spring 提供...
spring和redis集成有很多方式,看到网上很多都是使用redistemplate自己去做redis 的一些操作,但是对于我们开发来说,肯定是使用越方便越好,于是乎就有了spring的对redis或者memcahe这些换成框架的封装,只需要引入...