现在的位置: 首页 > 综合 > 正文

jedis客户端对象的使用

2013年09月11日 ⁄ 综合 ⁄ 共 1388字 ⁄ 字号 评论关闭

 最近初次尝试使用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);
		}
	}

 

抱歉!评论已关闭.