linux下的redis+spring叢集整合(七)
阿新 • • 發佈:2019-02-19
其實這裡只是簡單的模擬了一下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);//釋放連線池 }
}