redis的Java客户端jedis池的介绍及使用

时间:2022-09-07 17:26:44
一、jedis池的介绍

相信大家都用过线程池或者是jdbc的连接池,使用池可以减少系统在使用所需对象时创建对象的开销,从而提高系统性能和效率。jedis池也是如此,那么我们该如何使用jedis池呢?

二、jedis池的使用

1.所需jar包:commons-pool.jar、jedis-2.1.0.jar


2.编写Redis配置文件(redis.properties):

本例中代码如下:

#*****************jedis连接参数设置*********************#

#redis服务器ip #

redis.ip=192.168.8.167

#redis服务器端口号#

redis.port=6379

#************************jedis池参数设置*******************#

#jedis的最大分配对象#

jedis.pool.maxActive=3000

#jedis最大保存idel状态对象数 #

jedis.pool.maxIdle=1000

#jedis池没有对象返回时,最大等待时间 #

jedis.pool.maxWait=1500

#jedis调用borrowObject方法时,是否进行有效检查#

jedis.pool.testOnBorrow=true

#jedis调用returnObject方法时,是否进行有效检查 #

jedis.pool.testOnReturn=true

3.编写Java实现代码:


package com.zhongying.customer.utils;

import java.io.IOException;

import java.util.Properties;

import redis.clients.jedis.Jedis;

import redis.clients.jedis.JedisPool;

import redis.clients.jedis.JedisPoolConfig;

public class MyJedisPool {

private static JedisPool pool;

//静态代码初始化池配置

static {

try{

Properties props = new Properties();

props.load(MyJedisPool.class.getClassLoader().getResourceAsStream("redis.properties"));

//创建jedis池配置实例

JedisPoolConfig config = new JedisPoolConfig();

//设置池配置项值

config.setMaxActive(Integer.valueOf(props.getProperty("jedis.pool.maxActive")));

config.setMaxIdle(Integer.valueOf(props.getProperty("jedis.pool.maxIdle")));

config.setMaxWait(Long.valueOf(props.getProperty("jedis.pool.maxWait")));

config.setTestOnBorrow(Boolean.valueOf(props.getProperty("jedis.pool.testOnBorrow")));

config.setTestOnReturn(Boolean.valueOf(props.getProperty("jedis.pool.testOnReturn")));

//根据配置实例化jedis池

pool = new JedisPool(config, props.getProperty("redis.ip"), Integer.valueOf(props.getProperty("redis.port")));

}catch (IOException e) {

e.printStackTrace();

}

}



/**获得jedis对象*/

public static Jedis getJedisObject(){

return pool.getResource();

}



/**归还jedis对象*/

public static void recycleJedisOjbect(Jedis jedis){

pool.returnResource(jedis);

}



/**

* 测试jedis池方法

*/

public static void main(String[] args) {

Jedis jedis = getJedisObject();//获得jedis实例

//获取jedis实例后可以对redis服务进行一系列的操作

jedis.set("name", "zhuxun");

System.out.println(jedis.get("name"));

jedis.del("name");

System.out.println(jedis.exists("name"));

recycleJedisOjbect(jedis); //将 获取的jedis实例对象还回迟中

}

}

4.测试执行结果如下:

zhuxun
false


转自网络,原作者已佚