最近初次尝试使用redis,java客户端采用的jedis,写了几个简单的类满足基本的服务器配置,以及客户端对象的使用等。
客户端对象的创建
package jediscache.common; import redis.clients.jedis.Jedis; import redis.clients.jedis.JedisPool; import redis.clients.jedis.JedisPoolConfig; import redis.clients.jedis.Protocol; public class JedisFactory { private JedisPoolConfig jedisPoolConfig; private JedisPool jedisPool; public JedisFactory(JedisPoolConfig jedisPoolConfig) { super(); this.jedisPoolConfig = jedisPoolConfig; } public Jedis getJedisInstance(String host) { return getJedisPool(host, Protocol.DEFAULT_PORT).getResource(); } public Jedis getJedisInstance(String host, int port) { return getJedisPool(host, port).getResource(); } public JedisPool getJedisPool(String host) { return getJedisPool(host, Protocol.DEFAULT_PORT); } public JedisPool getJedisPool(String host, int port) { if (jedisPool == null) { jedisPool = new JedisPool(jedisPoolConfig, host, port); } return jedisPool; } /** * 配合使用getJedisInstance方法后将jedis对象释放回连接池中 * * @param jedis 使用完毕的Jedis对象 * @return true 释放成功;否则返回false */ public boolean release(Jedis jedis) { if (jedisPool != null && jedis != null) { jedisPool.returnResource(jedis); return true; } return false; } }
使用客户端对象
public void testLpush() {
JedisFactory factory = new JedisFactory(new JedisPoolConfig());
Jedis jedis = factory.getJedisInstance("localhost");
try {
String word = "word";
jedis.lpush(word, "first");
jedis.lpush(word, "second");
jedis.lpush(word, "three");
System.out.println("word : " + jedis.lrange(word, 0, -1));
} finally {
factory.release(jedis);
}
}