首页 > 代码库 > spring中集成使用jedis(1)

spring中集成使用jedis(1)

本文主要说明在项目中通过spring集成jedis的使用方法。

首先,在jedis的连接配置中,出于性能考虑选择连接池形式。
jedis中的连接池类为

redis.clients.jedis.JedisPool

其中包含多个构造器,可根据需要自行选取,这里选择较为基础形式:

 

 

public JedisPool(final GenericObjectPoolConfig poolConfig,
	    final String host, final int port) {
	this(poolConfig, host, port, Protocol.DEFAULT_TIMEOUT, null,
		Protocol.DEFAULT_DATABASE, null);
    }

spring中配置如下:

 

 

<!-- 连接池配置形式、端口为默认:6379 -->
	<bean id="redisPool" class="redis.clients.jedis.JedisPool"
		singleton="true" lazy-init="true">
		<!-- 连接池配置 -->
		<constructor-arg index="0">
			<ref bean="poolConfig" />
		</constructor-arg>
		<!-- host -->
		<constructor-arg index="1" value="http://www.mamicode.com/127.0.0.1" />
		<!-- port -->
		<constructor-arg index="2" value="http://www.mamicode.com/6379" type="int" />
	</bean>

其中涉及到连接池配置poolconfig,jedis的连接池配置主要基于commons-pool2-2.0,涉及类为

 

 

org.apache.commons.pool2.impl.GenericObjectPoolConfig

包含maxTotal、maxIdle、minIdle、maxWaitMillis属性,可通过spring配置如下:

 

 

	<!-- 连接池设置 -->
	<bean id="poolConfig" class="org.apache.commons.pool2.impl.GenericObjectPoolConfig">
		<property name="maxTotal" value="http://www.mamicode.com/8" />
		<property name="maxIdle" value="http://www.mamicode.com/8" />
		<property name="minIdle" value="http://www.mamicode.com/0" />
		<property name="maxWaitMillis" value="http://www.mamicode.com/-1" />
	</bean>

 

至此,便可以方便的将连接池作为属性注入到对应的redis服务封装对象中,如:

 

<!-- redis服务 -->
	<bean id="redisService"
		class="com.service.imp.RedisService"
		lazy-init="true">
		<property name="jedisPool">
			<ref local="redisPool" />
		</property>
	</bean>


然后就可以直接通过连接池获取jedis,方便快捷的操作redis了。

 

 

后续会添加master/salve配置方式,敬请期待。。。