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;
}