Search in sources :

Example 41 with ShardedJedis

use of redis.clients.jedis.ShardedJedis in project jedis by xetorthio.

the class ShardedJedisPoolTest method checkResourceIsCloseable.

@Test
public void checkResourceIsCloseable() throws URISyntaxException {
    GenericObjectPoolConfig config = new GenericObjectPoolConfig();
    config.setMaxTotal(1);
    config.setBlockWhenExhausted(false);
    List<JedisShardInfo> shards = new ArrayList<JedisShardInfo>();
    shards.add(new JedisShardInfo(new URI("redis://:foobared@localhost:6380")));
    shards.add(new JedisShardInfo(new URI("redis://:foobared@localhost:6379")));
    ShardedJedisPool pool = new ShardedJedisPool(config, shards);
    ShardedJedis jedis = pool.getResource();
    try {
        jedis.set("hello", "jedis");
    } finally {
        jedis.close();
    }
    ShardedJedis jedis2 = pool.getResource();
    try {
        assertEquals(jedis, jedis2);
    } finally {
        jedis2.close();
    }
}
Also used : GenericObjectPoolConfig(org.apache.commons.pool2.impl.GenericObjectPoolConfig) ShardedJedis(redis.clients.jedis.ShardedJedis) ShardedJedisPool(redis.clients.jedis.ShardedJedisPool) ArrayList(java.util.ArrayList) JedisShardInfo(redis.clients.jedis.JedisShardInfo) URI(java.net.URI) Test(org.junit.Test)

Example 42 with ShardedJedis

use of redis.clients.jedis.ShardedJedis in project jedis by xetorthio.

the class ShardedJedisTest method testAvoidLeaksUponDisconnect.

/**
   * Test for "Issue - BinaryShardedJedis.disconnect() may occur memory leak". You can find more
   * detailed information at https://github.com/xetorthio/jedis/issues/808
   * @throws InterruptedException
   */
@Test
public void testAvoidLeaksUponDisconnect() throws InterruptedException {
    List<JedisShardInfo> shards = new ArrayList<JedisShardInfo>(2);
    // 6379
    JedisShardInfo shard1 = new JedisShardInfo(redis1.getHost(), redis1.getPort());
    shard1.setPassword("foobared");
    shards.add(shard1);
    // 6380
    JedisShardInfo shard2 = new JedisShardInfo(redis2.getHost(), redis2.getPort());
    shard2.setPassword("foobared");
    shards.add(shard2);
    @SuppressWarnings("resource") ShardedJedis shardedJedis = new ShardedJedis(shards);
    // establish the connection for two redis servers
    shardedJedis.set("a", "bar");
    JedisShardInfo ak = shardedJedis.getShardInfo("a");
    assertEquals(shard2, ak);
    shardedJedis.set("b", "bar1");
    JedisShardInfo bk = shardedJedis.getShardInfo("b");
    assertEquals(shard1, bk);
    // We set a name to the instance so it's easy to find it
    Iterator<Jedis> it = shardedJedis.getAllShards().iterator();
    Jedis deadClient = it.next();
    deadClient.clientSetname("DEAD");
    ClientKillerUtil.killClient(deadClient, "DEAD");
    assertEquals(true, deadClient.isConnected());
    assertEquals(false, deadClient.getClient().getSocket().isClosed());
    // normal - not found
    assertEquals(false, deadClient.getClient().isBroken());
    shardedJedis.disconnect();
    assertEquals(false, deadClient.isConnected());
    assertEquals(true, deadClient.getClient().getSocket().isClosed());
    assertEquals(true, deadClient.getClient().isBroken());
    Jedis jedis2 = it.next();
    assertEquals(false, jedis2.isConnected());
    assertEquals(true, jedis2.getClient().getSocket().isClosed());
    assertEquals(false, jedis2.getClient().isBroken());
}
Also used : ShardedJedis(redis.clients.jedis.ShardedJedis) Jedis(redis.clients.jedis.Jedis) ShardedJedis(redis.clients.jedis.ShardedJedis) ArrayList(java.util.ArrayList) JedisShardInfo(redis.clients.jedis.JedisShardInfo) Test(org.junit.Test)

Example 43 with ShardedJedis

use of redis.clients.jedis.ShardedJedis in project jedis by xetorthio.

the class ShardedJedisTest method checkCloseable.

@Test
public void checkCloseable() {
    List<JedisShardInfo> shards = new ArrayList<JedisShardInfo>();
    shards.add(new JedisShardInfo(redis1.getHost(), redis1.getPort()));
    shards.add(new JedisShardInfo(redis2.getHost(), redis2.getPort()));
    shards.get(0).setPassword("foobared");
    shards.get(1).setPassword("foobared");
    ShardedJedis jedisShard = new ShardedJedis(shards);
    try {
        jedisShard.set("shard_closeable", "true");
    } finally {
        jedisShard.close();
    }
    for (Jedis jedis : jedisShard.getAllShards()) {
        assertTrue(!jedis.isConnected());
    }
}
Also used : ShardedJedis(redis.clients.jedis.ShardedJedis) Jedis(redis.clients.jedis.Jedis) ShardedJedis(redis.clients.jedis.ShardedJedis) ArrayList(java.util.ArrayList) JedisShardInfo(redis.clients.jedis.JedisShardInfo) Test(org.junit.Test)

Example 44 with ShardedJedis

use of redis.clients.jedis.ShardedJedis in project oxCore by GluuFederation.

the class RedisShardedProvider method get.

@Override
public Object get(String key) {
    ShardedJedis jedis = pool.getResource();
    try {
        byte[] value = jedis.get(key.getBytes());
        Object deserialized = null;
        if (value != null && value.length > 0) {
            deserialized = SerializationUtils.deserialize(value);
        }
        return deserialized;
    } finally {
        jedis.close();
    }
}
Also used : ShardedJedis(redis.clients.jedis.ShardedJedis)

Example 45 with ShardedJedis

use of redis.clients.jedis.ShardedJedis in project tech by ffyyhh995511.

the class JedisShardService method set.

public String set(String key, String value) {
    ShardedJedis shardedJedis = pool.getResource();
    String rs = shardedJedis.set(key, value);
    shardedJedis.close();
    return rs;
}
Also used : ShardedJedis(redis.clients.jedis.ShardedJedis)

Aggregations

ShardedJedis (redis.clients.jedis.ShardedJedis)45 Test (org.junit.Test)36 JedisShardInfo (redis.clients.jedis.JedisShardInfo)24 ArrayList (java.util.ArrayList)22 GenericObjectPoolConfig (org.apache.commons.pool2.impl.GenericObjectPoolConfig)22 ShardedJedisPool (redis.clients.jedis.ShardedJedisPool)22 Jedis (redis.clients.jedis.Jedis)14 URI (java.net.URI)4 ShardedJedisPipeline (redis.clients.jedis.ShardedJedisPipeline)4 Serializable (java.io.Serializable)2 Before (org.junit.Before)2