package com.qconsp;
import static java.lang.System.currentTimeMillis;
import java.util.ArrayList;
import java.util.List;
import org.apache.commons.pool2.impl.GenericObjectPool;
import org.apache.commons.pool2.impl.GenericObjectPoolConfig;
import org.junit.Before;
import org.junit.Test;
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisShardInfo;
import redis.clients.jedis.ShardedJedis;
import redis.clients.jedis.ShardedJedisPool;
import redis.clients.util.Hashing;
public class Redis03Sharding {
private ShardedJedisPool pool;
@Before
public void before() {
List<JedisShardInfo> shards = new ArrayList<JedisShardInfo>();
shards.add(new JedisShardInfo("127.0.0.1", 1200));
shards.add(new JedisShardInfo("127.0.0.1", 1201));
shards.add(new JedisShardInfo("127.0.0.1", 1202));
shards.add(new JedisShardInfo("127.0.0.1", 1203));
pool = new ShardedJedisPool(new GenericObjectPoolConfig(), shards, Hashing.MURMUR_HASH);
}
@Test
public void redis() throws Exception {
long start = currentTimeMillis();
ShardedJedis jedis = pool.getResource();
for (int i = 0; i < 10000; i++) {
jedis.setex("key-" + i, 60, "algum valor: " + i);
}
System.out.println("Time: " + (currentTimeMillis() - start) + "ms.");
}
}