1. 程式人生 > >linux下的redis+spring叢集整合(七)

linux下的redis+spring叢集整合(七)

其實這裡只是簡單的模擬了一下redis的叢集,就是在兩臺linux下部署redis將其通過spring繫結到一起,簡單的實現叢集的效果。只需要修改下spring中的配置資訊,將兩臺redis通過List存到shardedJedisPool中即可。
spring的配置:

<context:property-placeholder location="classpath:redis2.properties" />  
<bean id="jedisPoolConfig" class="redis.clients.jedis.JedisPoolConfig">  
    <property name="maxTotal"  value="${redis.pool.maxActive}" /> 
    <property name="maxIdle"    value="${redis.pool.maxIdle}" />  
    <property name="maxWaitMillis"    value="${redis.pool.maxWait}" />  
    <property name="testOnBorrow" value="${redis.pool.testOnBorrow}" />  
</bean>  
<bean  id="shardedJedisPool" class="redis.clients.jedis.ShardedJedisPool" >  
    <constructor-arg  index="0" ref="jedisPoolConfig" />  
    <constructor-arg index="1">  
        <list>  
            <bean class="redis.clients.jedis.JedisShardInfo">  
                <constructor-arg  
                    index="0"  
                    value="${redis.ip}" />  
                <constructor-arg  
                    index="1"  
                    value="${redis.port}"  
                    type="int" />  
            </bean> 
            <bean class="redis.clients.jedis.JedisShardInfo">  
                <constructor-arg  
                    index="0"  
                    value="${redis.ip2}" />  
                <constructor-arg  
                    index="1"  
                    value="${redis.port}"  
                    type="int" />  
            </bean>  

        </list>  
    </constructor-arg>  
</bean>  
</beans>

測試程式碼:

import redis.clients.jedis.ShardedJedis;
import redis.clients.jedis.ShardedJedisPool;

public class Test {

public static void main(String[] args) {
     ApplicationContext app= new ClassPathXmlApplicationContext("spring.xml");   
     ShardedJedisPool pool=(ShardedJedisPool) app.getBean("shardedJedisPool");
    ShardedJedis jedis = pool.getResource();  
    String keys = "name";
    jedis.del(keys);
    jedis.set(keys, "yjl");
    String value = jedis.get(keys);
    System.out.println(value);
    pool.returnBrokenResource(jedis);//釋放連線池

}

}