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.HostAndPort; import redis.clients.jedis.Jedis; import redis.clients.jedis.JedisSentinelPool; /** * cachecloud-redisSentinel客户端测试 * * @author leifu * @Date 2014年11月21日 * @Time 上午11:58:53 */ public class RedisSentinelTest extends BaseTest { private final static long appId = 0L; @Test public void testSentinel() { JedisSentinelPool sentinelPool = ClientBuilder.redisSentinel(appId) .setConnectionTimeout(2000) .setSoTimeout(1000) .build(); HostAndPort currentHostMaster = sentinelPool.getCurrentHostMaster(); logger.info("current master: {}", currentHostMaster.toString()); Jedis jedis = sentinelPool.getResource(); for (int i = 0; i < 10; i++) { jedis.lpush("mylist", "list-" + i); } jedis.close(); sentinelPool.destroy(); } @Test public void testSentinelExample() { JedisSentinelPool sentinelPool = null; // 使用默认配置 // sentinelPool = ClientBuilder.redisSentinel(appId).build(); /** * 自定义配置 */ GenericObjectPoolConfig poolConfig = new GenericObjectPoolConfig(); poolConfig.setMaxIdle(GenericObjectPoolConfig.DEFAULT_MAX_IDLE * 3); poolConfig.setMinIdle(GenericObjectPoolConfig.DEFAULT_MIN_IDLE * 2); poolConfig.setJmxEnabled(true); poolConfig.setMaxWaitMillis(3000); sentinelPool = ClientBuilder.redisSentinel(appId) .setPoolConfig(poolConfig) .setConnectionTimeout(2000) .setSoTimeout(1000) .build(); Jedis jedis = sentinelPool.getResource(); jedis.set("key1", "1"); assertEquals("2", jedis.incr("key1")); jedis.close(); } }