本文主要说明在项目中通过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配置方式,敬请期待。。。