jedis 通过 commons-pool 来提供其对象池的功能,其对象池类有 JedisPool 和 ShardedJedisPool,面向普通的 redis 连接池和 pre-sharding 的 redis 连接池。
在连接池的使用和配置层面,这两个类基本没什么差别。
配置 jedis 的连接池,一般通过 JedisPoolConfig 类完成,其提供了一个不同于基类的默认值,当然也可以通过 org.apache.commons.pool.impl.GenericObjectPool.Config 类来配置,这个类的默认值我们可以在 commons-pool 对象池配置的小节中看到。
对象池的使用
jedis 创建对象池的方式:JedisPool pool = new JedisPool(new JedisPoolConfig(), "localhost");
使用池中的对象,是通过 JedisPool 的 getResource 和 returnResource 来得到和归还资源:Jedis jedis = pool.getResource();
try {
/// ... do stuff here ... for example
jedis.set("foo", "bar");
String foobar = jedis.get("foo");
jedis.zadd("sose", 0, "car"); jedis.zadd("sose", 0, "bike");
Set sose = jedis.zrange("sose", 0, -1);
}