springmvc3.2集成redis集群


老項目需要集成redis集群

因為spring版本才從2.x升級上來,再升級可能改動較大,且並非maven項目升級麻煩,故直接集成。

 

jar包准備:

jedis-2.9.0.jar  -- 據說只有這個版本支持 密碼...

commons-pool2-2.0.jar

spring-data-redis-1.8.1.RELEASE.jar

spring-data-commons-1.8.1.RELEASE.jar

 

<!--  redis-開始   -->
    <bean id="jedisPoolConfig" class="redis.clients.jedis.JedisPoolConfig">
        <!--最大空閑數 -->
        <property name="maxIdle" value="${redis.maxIdle}" />
        <!--最大建立連接等待時間 -->
        <property name="maxWaitMillis" value="${redis.maxWait}" />
        <!--是否在從池中取出連接前進行檢驗,如果檢驗失敗,則從池中去除連接並嘗試取出另一個 -->
        <property name="testOnBorrow" value="${redis.testOnBorrow}" />
    </bean>

    <bean id="jedis" class="redis.clients.jedis.JedisCluster">
        <constructor-arg>
            <set>
                <bean class="redis.clients.jedis.HostAndPort">
                    <constructor-arg name="host" value="${redis.host1}"></constructor-arg>
                    <constructor-arg name="port" value="${redis.port1}"></constructor-arg>
                </bean>
                <bean class="redis.clients.jedis.HostAndPort">
                    <constructor-arg name="host" value="${redis.host2}"></constructor-arg>
                    <constructor-arg name="port" value="${redis.port2}"></constructor-arg>
                </bean>
                <bean class="redis.clients.jedis.HostAndPort">
                    <constructor-arg name="host" value="${redis.host3}"></constructor-arg>
                    <constructor-arg name="port" value="${redis.port3}"></constructor-arg>
                </bean>
                <bean class="redis.clients.jedis.HostAndPort">
                    <constructor-arg name="host" value="${redis.host4}"></constructor-arg>
                    <constructor-arg name="port" value="${redis.port4}"></constructor-arg>
                </bean>
                <bean class="redis.clients.jedis.HostAndPort">
                    <constructor-arg name="host" value="${redis.host5}"></constructor-arg>
                    <constructor-arg name="port" value="${redis.port5}"></constructor-arg>
                </bean>
                <bean class="redis.clients.jedis.HostAndPort">
                    <constructor-arg name="host" value="${redis.host6}"></constructor-arg>
                    <constructor-arg name="port" value="${redis.port6}"></constructor-arg>
                </bean>
            </set>
        </constructor-arg>
        <constructor-arg name="connectionTimeout" value="${redis.timeout}" />
        <constructor-arg name="soTimeout" value="${redis.timeout}" />
        <constructor-arg name="maxAttempts" value="${redis.maxAttempts}" />
        <constructor-arg name="password" value="${redis.password}" />
        <constructor-arg name="poolConfig">
            <ref bean="jedisPoolConfig" />
        </constructor-arg>
    </bean>
    
    <!--  redis-結束   -->

 

redis.maxIdle=200
redis.maxActive=1000
redis.maxWait=1000
redis.testOnBorrow=true
redis.timeout=30
redis.maxAttempts=300
redis.password=xxxxxx

# 10.10.130.150:1501,10.10.130.150:1502,10.10.130.150:1503,10.10.130.150:1504,10.10.130.150:1505,10.10.130.150:1506
redis.host1=10.10.130.150
redis.port1=1501
redis.host2=10.10.130.150
redis.port2=1502
redis.host3=10.10.130.150
redis.port3=1503
redis.host4=10.10.130.150
redis.port4=1504
redis.host5=10.10.130.150
redis.port5=1505
redis.host6=10.10.130.150
redis.port6=1506
public class RedisUtil {
    private static JedisCluster jedis = (JedisCluster) SpringContextHolder.getBean("jedis");

    private RedisUtil() {
    }
    
    /**
     * 獲取指定key的值,如果key不存在返回null,如果該Key存儲的不是字符串,會拋出一個錯誤
     *
     * @param key
     * @return
     */
    public static String getstr(String key) {
        String value = null;
        value = jedis.get(key);
        return value;
    }

    /**
     * 設置key的值為value
     *
     * @param key
     * @param value
     * @return
     */
    public static String set(String key, String value) {
        return jedis.set(key, value);
    }
}

 

如果需要配置 redisTemplate的需要 spring版本 4.x ,否則會有各種錯誤。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM