本文主要说明在项目中通过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="127.0.0.1" />
<!-- port -->
<constructor-arg index="2" value="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="8" />
<property name="maxIdle" value="8" />
<property name="minIdle" value="0" />
<property name="maxWaitMillis" value="-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配置方式,敬请期待。。。
时间: 2024-11-07 06:50:17