`
knight_black_bob
  • 浏览: 853094 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

redis 集成到 spring 中

阅读更多

 

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捐助),没钱捧个人场,谢谢各位。



 
 
 谢谢您的赞助,我会做的更好!

 

 

 

2
0
分享到:
评论

相关推荐

    shiro-redis集成的spring的web项目

    在IT行业中,Shiro、Redis和Spring的集成是构建高效、安全Web应用的常见实践。本项目是一个将Apache Shiro与Redis缓存系统整合到Spring框架中的实例,旨在提升应用程序的安全性和性能。以下是对这个项目及其相关技术...

    Redis集成Spring的Java代码

    首先,要集成Redis到Spring项目中,我们需要在项目的`pom.xml`文件中添加Redis的相关依赖,例如`spring-data-redis`和`lettuce`(Redis客户端): ```xml &lt;groupId&gt;org.springframework.data &lt;artifactId&gt;spring...

    SpringCloud整合Redis

    SpringCloud整合Redis缓存;版本:SpringCloud :Dalston.SR4;SpringBoot:1.5.14.RELEASE;Redis:3.2.0;Maven :3.5.3.代码下载下来即可用

    redis集成spring jar包以及配置文件

    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配置,需要引用到自己项目的...

    springBoot集成redis

    本文将详细介绍如何在Spring Boot项目中集成Redis和MyBatis,以实现数据缓存和数据库操作。 首先,为了在Spring Boot项目中引入Redis,我们需要在`pom.xml`文件中添加Spring Data Redis依赖: ```xml &lt;groupId&gt;...

    spring redis集成

    Spring Redis集成使得我们在Spring应用中使用Redis变得更加简便,通过`RedisTemplate`我们可以方便地执行各种Redis操作,同时Spring Data Redis提供了丰富的API来支持更复杂的数据结构和功能。结合测试用例,我们...

    spring集成redis源码

    spring和redis集成有很多方式,看到网上很多都是使用redistemplate自己去做redis 的一些操作,但是对于我们开发来说,肯定是使用越方便越好,于是乎就有了spring的对redis或者memcahe这些换成框架的封装,只需要引入...

    Redis缓存+Spring的集成示例

    Redis缓存+Spring的集成示例 Redis缓存+Spring的集成示例Redis缓存+Spring的集成示例 Redis缓存+Spring的集成示例

    redis集成spring实现aop.zip

    当我们谈论"redis集成spring实现aop"时,我们指的是如何将Redis缓存系统与Spring框架结合,并利用Spring的面向切面编程(AOP)功能来优化应用程序的性能。 首先,让我们深入了解Redis。Redis是一种内存数据结构存储...

    Spring3.0整合redis相关jar

    "Spring3.0整合redis相关jar"这个主题主要涉及的是如何在Spring 3.0版本中集成Redis作为数据存储或缓存解决方案。Spring 3.0虽然相对较老,但在当时是广泛使用的版本,因此了解其与Redis的集成方式对维护旧项目或...

    springcloud部署redis集群

    SpringCloud通过集成Spring Data Redis模块,使得在微服务架构中与Redis进行交互变得非常便捷。以下将详细介绍如何在SpringCloud中配置和使用Redis集群。 首先,你需要了解Redis集群的基本概念。Redis集群通过数据...

    SpringCache与redis集成,优雅的缓存解决方案.docx

    在本文中,我们将对SpringCache与Redis集成的优雅缓存解决方案进行详细介绍。 缓存是加速服务响应速度的一种非常有效并且简单的方式。在缓存领域,有很多知名的框架,如EhCache、Guava、HazelCast等。Redis作为key-...

    SpringData与Redis集成

    SpringData与Redis集成是现代Java应用中常见的数据存储和缓存解决方案。SpringData是一个强大的框架,它简化了数据库访问,并提供了对多种数据存储技术的统一API。而Redis是一款开源、高性能的键值对数据存储系统,...

    spring-data-redis 1.7.6

    Spring Data Redis使得在Java应用中集成和操作Redis变得简单而优雅。 在1.7.6版本中,Spring Data Redis提供了一系列的改进和优化,以提升开发者的使用体验。以下将从几个关键点详细阐述这一版本的核心特性: 1. *...

    SpringMvc集成Redis项目完整示例

    在本项目中,"SpringMvc集成Redis项目完整...总结起来,这个项目是一个实践性强、易于学习的教程,涵盖了Spring MVC和Redis集成的各个方面,从配置到实际应用,再到测试验证,对想要掌握这一技术栈的开发者非常有帮助。

    springMVC集成spring-data-redis

    在SpringMVC中集成Spring Data Redis,可以利用Redis的高效特性来提升应用程序的数据处理能力,例如作为session共享的存储、缓存数据或者实现发布/订阅(Pub/Sub)功能。发布/订阅是一种通信模式,允许发送者(pub)将...

    redis和spring整合

    本文将深入探讨如何进行Redis与Spring的整合,并详细解析整合过程中的关键步骤。 首先,我们要理解Spring对数据源的支持。Spring提供了多种数据源抽象,包括JdbcTemplate、JPA、MyBatis等。为了整合Redis,我们需要...

    Spring mvc整合redis实例(redis连接池)

    在现代Web应用开发中,Spring MVC作为主流的MVC框架,常常需要与各种持久层技术进行集成以提高数据处理效率。Redis,一个高性能的键值存储系统,常被用于缓存、消息队列等场景。将Spring MVC与Redis结合,可以有效...

    redis-cluster和spring集成,基于cache注解

    在企业级应用中,Spring 提供的缓存抽象使得集成各种缓存系统变得简单,其中包括 Redis。 集成 Redis 与 Spring 的主要目的是利用 Redis 的高性能和分布式特性来提升应用程序的响应速度和并发处理能力。Spring 提供...

    spring-redis-test---spring redis集成

    spring和redis集成有很多方式,看到网上很多都是使用redistemplate自己去做redis 的一些操作,但是对于我们开发来说,肯定是使用越方便越好,于是乎就有了spring的对redis或者memcahe这些换成框架的封装,只需要引入...

Global site tag (gtag.js) - Google Analytics