redis実践ノート詳細(二)(java編,jedis-2.8.0.jarとspring 2.5の統合)
6668 ワード
スプリング、redisといえば、みんなspring-data-redisを使っています.否応なく、これはいいです.
現状:会社のspringバージョンが低すぎる.2.5...骨董品、アップグレード、関連面が多すぎて、筋肉を傷つけて骨を動かします;
剣は偏鋒を歩いて、私达は今日曲線は国を救って、直接spring 2.5.6は最新バージョンのredis(jedis-2.8.0.jar)を統合します;
いかなる未写バージョンの高談広論もごろつきだ.だから必ずバージョンを明記してください!!!私のバージョンは
spring-2.5.6.jar
jedis-2.8.0.jar
第一に、jarパッケージを導入する.
第二に、redisパラメータ:systemを構成する.db.properties;
と書く
redis.pool.maxTotal=1024
redis.pool.maxIdle=200
redis.pool.minIdle=5
redis.pool.maxWaitMillis=1000
redis.pool.testOnBorrow=true
redis.pool.testOnReturn=true
redis.host=127.0.0.1
redis.port=6379
redis.timeout=1000
第三:springを構成するファイル:context.redis.xml
注意:commons-pool 2のmaxactiveを知っています.maxWaitは名前を変更しました.
JedisPoolConfigが受け継いだのは私たちがよく知っているorgです.apache.commons.pool.impl.GenericObjectPool.Config.Jedisのオオカミたちが拡張をするとき、コードの互換性を考慮してもらえませんか...私の配置は最新版です.2016-05-31
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN"
"http://www.springframework.org/dtd/spring-beans.dtd">
<beans default-autowire="byName">
<!-- redis system.db.properties
<context:property-placeholder location="classpath:redis.properties"/>
-->
<!-- redis -->
<bean id="jedisPoolConfig" class="redis.clients.jedis.JedisPoolConfig">
<property name="maxTotal">
<value>${redis.pool.maxTotal}</value>
</property>
<property name="maxIdle" value="${redis.pool.maxIdle}"/>
<property name="minIdle" value="${redis.pool.minIdle}"/>
<property name="maxWaitMillis" value="${redis.pool.maxWaitMillis}"/>
<property name="testOnBorrow" value="${redis.pool.testOnBorrow}"/>
<property name="testOnReturn" value="${redis.pool.testOnReturn}"/>
</bean>
<!-- redis pool, :timeout/password -->
<bean id = "jedisPool" class="redis.clients.jedis.JedisPool">
<constructor-arg index="0" ref="jedisPoolConfig"/>
<constructor-arg index="1" value="${redis.host}"/>
<constructor-arg index="2" value="${redis.port}" type="int"/>
<constructor-arg index="3" value="${redis.timeout}" type="int"/>
<!-- <constructor-arg index="4" value="${redis.password}"/>-->
</bean>
<bean id = "redisService" class="com.hh.common.tools.RedisService">
</bean>
</beans>
第四に、ツールクラスRedisService;add,get,およびタイムアウトの方法をカプセル化した.
package com.hh.common.tools;
import java.util.Set;
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
/**
* <p> : redis
* 2016 5 31 3:36:21
* @version 1.0
*/
public class RedisService {
/**
* key ( )
* @param key
*/
public void del(byte [] key){
this.getJedis().del(key);
}
/**
* key
* @param key
*/
public void del(String key){
this.getJedis().del(key);
}
/**
* key value (byte)
* @param key
* @param value
* @param liveTime
*/
public void set(byte [] key,byte [] value,int liveTime){
this.set(key, value);
this.getJedis().expire(key, liveTime);
}
/**
* key value
* @param key
* @param value
* @param liveTime
*/
public void set(String key,String value,int liveTime){
this.set(key, value);
this.getJedis().expire(key, liveTime);
}
/**
* key value
* @param key
* @param value
*/
public void set(String key,String value){
this.getJedis().set(key, value);
}
/** key value ( )( )
* @param key
* @param value
*/
public void set(byte [] key,byte [] value){
this.getJedis().set(key, value);
}
/**
* redis value (String)
* @param key
* @return
*/
public String get(String key){
String value = this.getJedis().get(key);
return value;
}
/**
* redis value (byte [] )( )
* @param key
* @return
*/
public byte[] get(byte [] key){
return this.getJedis().get(key);
}
/**
* keys
* @param pattern
* @return
*/
public Set<String> keys(String pattern){
return this.getJedis().keys(pattern);
}
/**
* key
* @param key
* @return
*/
public boolean exists(String key){
return this.getJedis().exists(key);
}
/**
* redis
* @return
*/
public String flushDB(){
return this.getJedis().flushDB();
}
/**
* redis
*/
public long dbSize(){
return this.getJedis().dbSize();
}
/**
*
* @return
*/
public String ping(){
return this.getJedis().ping();
}
/**
* jedis
* @return
*/
private Jedis getJedis(){
if(jedis == null){
return jedisPool.getResource();
}
return jedis;
}
private RedisService (){
}
// redis
private static Jedis jedis;
public JedisPool getJedisPool() {
return jedisPool;
}
public void setJedisPool(JedisPool jedisPool) {
this.jedisPool = jedisPool;
}
private JedisPool jedisPool;
}