package com.sohu.tv.test.client; import com.sohu.tv.builder.ClientBuilder; import com.sohu.tv.test.base.BaseTest; import org.apache.commons.pool2.impl.GenericObjectPoolConfig; import org.junit.Test; import redis.clients.jedis.*; import java.util.Map; import java.util.concurrent.TimeUnit; /** * cachecloud-rediscluster客户端测试 * * @author leifu * @Date 2014年11月21日 * @Time 上午11:58:53 */ public class RedisClusterTest extends BaseTest { private final static long appId = 0L; @Test public void pushData() throws Exception { JedisCluster redisCluster = ClientBuilder.redisCluster(appId) .setJedisPoolConfig(getPoolConfig()) .setConnectionTimeout(2000) .setSoTimeout(1000) .build(); for (int i = 1; i < 100; i++) { redisCluster.setex("tmp:key" + i, 60 * 20, "value" + i); TimeUnit.MILLISECONDS.sleep(20); logger.info("push:" + i); } } @Test public void testCluster() { JedisCluster redisCluster = ClientBuilder.redisCluster(appId) .setJedisPoolConfig(getPoolConfig()) .setConnectionTimeout(2000) .setSoTimeout(1000) .build(); Map<String, JedisPool> clusterMap = redisCluster.getClusterNodes(); for (String key : clusterMap.keySet()) { logger.info("key={}", key); JedisPool jedisPool = clusterMap.get(key); Jedis jedis = jedisPool.getResource(); logger.info("before:cluster-slave-validity-factor->" + jedis.configGet("cluster-slave-validity-factor")); jedis.configSet("cluster-slave-validity-factor", "10"); logger.info("after:cluster-slave-validity-factor->" + jedis.configGet("cluster-slave-validity-factor")); logger.info("------------------------------------"); logger.info("before:repl-disable-tcp-nodelay->" + jedis.configGet("repl-disable-tcp-nodelay")); jedis.configSet("repl-disable-tcp-nodelay", "no"); logger.info("after:repl-disable-tcp-nodelay->" + jedis.configGet("repl-disable-tcp-nodelay")); logger.info("####################################"); jedis.close(); } } private GenericObjectPoolConfig getPoolConfig() { GenericObjectPoolConfig poolConfig = new GenericObjectPoolConfig(); poolConfig.setMaxTotal(GenericObjectPoolConfig.DEFAULT_MAX_TOTAL * 20); poolConfig.setMaxIdle(GenericObjectPoolConfig.DEFAULT_MAX_IDLE * 20); poolConfig.setMinIdle(GenericObjectPoolConfig.DEFAULT_MAX_IDLE * 10); // JedisPool.borrowObject最大等待时间 poolConfig.setMaxWaitMillis(1000L); poolConfig.setJmxNamePrefix("jedis-pool"); poolConfig.setJmxEnabled(true); return poolConfig; } }