java通过Jedis使用Redis完整教程_JAVA_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > JAVA > java通过Jedis使用Redis完整教程

java通过Jedis使用Redis完整教程

 2017/8/4 12:31:32  dwj147258  程序员俱乐部  我要评论(0)
  • 摘要:使用Java操作Redis需要jedis-2.1.0.jar,下载地址:http://files.cnblogs.com/liuling/jedis-2.1.0.jar.zip如果需要使用Redis连接池的话,还需commons-pool-1.5.4.jar,下载地址:http://files.cnblogs.com/liuling/commons-pool-1.5.4.jar.zip一般的,使用Jedis都需要使用连接池来获取连接一
  • 标签:使用 Java 教程

使用Java操作Redis需要jedis-2.1.0.jar,下载地址:http://files.cnblogs.com/liuling/jedis-2.1.0.jar.zip

如果需要使用Redis连接池的话,还需commons-pool-1.5.4.jar,下载地址:http://files.cnblogs.com/liuling/commons-pool-1.5.4.jar.zip

?

一般的,使用Jedis都需要使用连接池来获取连接

一、连接池的配置和使用

首先在spring中配置jedis连接池的一些配置信息

??

class="xml"><bean id="jedisPoolConfig" class="redis.clients.jedis.JedisPoolConfig">
		<property name="maxTotal" value="${redis.maxTotal}"></property>
		<property name="maxIdle" value="${redis.maxIdle}"></property>
		<property name="minIdle" value="${redis.minIdle}"></property>
		<property name="maxWaitMillis" value="${redis.maxWaitMillis}"></property>
		<property name="testOnBorrow" value="${redis.testOnBorrow}"></property>
		<property name="testOnReturn" value="${redis.testOnReturn}"></property>
		<property name="minEvictableIdleTimeMillis" value="${redis.minEvictableIdleTimeMillis}"></property>
		<property name="numTestsPerEvictionRun" value="${redis.numTestsPerEvictionRun}"></property>
		<property name="timeBetweenEvictionRunsMillis" value="${redis.timeBetweenEvictionRunsMillis}"></property>
	</bean>

?这些配置的具体描述信息可以简单的提一下:

?

?

maxTotal:最大连接数

maxIdle:最大空闲连接数

minIdle:最小空闲连接数

maxWaitMillis:获取连接时最大等待毫秒数,

testOnBorrow:获取连接时检查有效性

testOnRetrun:return给pool时,是否提前进行validate操作

minEvictableIdleTimeMillis:一个对象至少停留在idle状态的最短时间,才能被Idle, object evitor扫描并驱逐

numTestsPerEvictionRun:idle,object,evitor每次扫描对象的数

timeBetweenEvictionRunsMillis:释放连接的扫描间隔

配置完jedis连接池配置之后就可以配置连接池了

?

?

?

<bean id="jedisPool" class="redis.clients.jedis.JedisPool" destroy-method="destroy">
		<constructor-arg index="0" ref="jedisPoolConfig" />
		<constructor-arg index="1" value="${redis.hostName}" type="java.lang.String"/>
		<constructor-arg index="2" value="${redis.port}" type="int" />
		<constructor-arg index="3" value="${redis.timeout}"	type="int" />
		<constructor-arg index="4" value="${redis.auth}" type="java.lang.String"/>
	</bean>

?这里配置了jedis的连接池配置,名称地址以及端口密码等

?

?

。连接池就算是配好了,接下来我们就可以配置获取连接的类了:

?

import redis.clients.jedis.Jedis;
import redis.clients.util.Pool;


public class Test {

	private Pool<Jedis> redisPool;

	public Pool<Jedis>  getRedisPool() {
		return redisPool;
	}

	public void setRedisPool(Pool<Jedis>  redisPool) {
		this.redisPool = redisPool;
	}

	public Jedis getJedis() {
		try {
			Jedis jedis = redisPool.getResource();
			if (jedis == null) {
				return null;
			}
			return jedis;
		} catch (Exception e) {
		}
		return null;
	}

	public void release(Jedis jedis) {
		if (jedis != null) {
			jedis.close();
		}
	}
	public void init(){
		
	}

	public static void main(String[] args) {
	}
}

?这样我们可以写一个工具类来管理jedis的获取以及关闭等:

?

?public static Jedis getJedis(Integer index){

? ? ? ? Jedis jedis = null;

? ? ? ? JedisClient jedisClient = (JedisClient)ctx.getBean("jedisClient");

? ? ? ? if(null!=jedisClient){

? ? ? ? ? ? jedis = jedisClient.getJedis();

? ? ? ? }

? ? ? ? try{

? ? ? ? ? ? jedis.select(index);

? ? ? ? }catch(Exception e){

? ? ? ? ? ? jedis.select(JedisDBEnum.DEFAULT.getIndex().intValue());

? ? ? ? ? ? log.info("getJedis index:"+index+" and default select db 0",e);

? ? ? ? }

? ? ? ? return jedis;

?

? ? }

?

这一段很简单就是获取一个jedis连接,然后选择几号库,当然,用完jedis之后需要关闭连接

public static void closeJeids(Jedis jedis){

? ? ? ? try{

? ? ? ? ? ? if(null!=jedis){

? ? ? ? ? ? ? ? jedis.close();

? ? ? ? ? ? }

? ? ? ? }catch(Exception e){

? ? ? ? ? ? ? ? ? ??

? ? ? ? }

?

? ? }

这就是通过jedis连接池获取jedis连接的全部流程了

?

?

?

?

?

发表评论
用户名: 匿名