原文地址:http://blog.csdn.net/softwave/article/details/42320149
一、jedis池的介绍
相信大家都用过线程池或者是jdbc的连接池,使用池可以减少系统在使用所需对象时创建对象的开销,从而提高系统性能和效率。jedis池也是如此,那么我们该如何使用jedis池呢?
二、jedis池的使用
1.所需jar包:commons-pool.jar、jedis-2.1.0.jar
本例中代码如下:
[plain] view plain copy- #*****************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
- 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实例对象还回池中
- }
- }
[plain] view plain copy
- zhuxun
- false