6、Jedis连接池及创建它的工具类

 jedis连接池: JedisPool。MySQL的连接池是第三方地宫,而jedis连接池是jedis自带。
    一、连接池使用方法:
        1. 创建JedisPool连接池对象
        2. 调用方法 getResource()方法获取Jedis连接

    public void test(){
        //第一步、创建配置对象,并设置好参数
        JedisPoolConfig jpc = new JedisPoolConfig();
        jpc.setMaxTotal(100);  //设置最大活动对象数
        jpc.setMaxIdle(50);    //设置最大能够保持IDLE状态的对象数

        //第二步、创建jedis连接池对象
        JedisPool jedisPool = new JedisPool(jpc,"localHost",6379);

        //第三步、创建连接
        Jedis jedis = jedisPool.getResource();

        //第四步、使用
        jedis.set("country","china");

        jedis.close();
    }


    二、 创建连接池工具类
        为了方便以后共用,且为了不在程序中配置参数增强代码的适用性,我们建立工具类从文件中读取配置参数。

插播:关于Class.getResource和ClassLoader.getResource的路径问题

(1) 放在SRC下的配置文件jedis.properties:

host=127.0.0.1
port=6379
maxTotal=50
maxIdle=10

(2)、创建好的工具类

package cn.lwgk.redis.util;

import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig;

import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;

public class JedisToolUtils {
    private static JedisPool jedisPool;

    static{
        //获取配置文件
        InputStream in = JedisToolUtils.class.getClassLoader().getResourceAsStream("jedis.properties");

        //创建Properties对象并加载配置文件
        Properties pro = new Properties();
        try {
            pro.load(in);
        } catch (IOException e) {
            e.printStackTrace();
        }

        //获取配置文件数据,并设置到JedisPoolConfig中去
        JedisPoolConfig config = new JedisPoolConfig();
        config.setMaxTotal(Integer.parseInt(pro.getProperty("maxTotal")));
        config.setMaxIdle(Integer.parseInt(pro.getProperty("maxIdle")));

        //初始化JedisPool
         jedisPool = new JedisPool(config,pro.getProperty("host"),Integer.parseInt(pro.getProperty("port")));

    }

    /**
     *从缓冲池中获取Jedis
     * @return
     */
    public static Jedis getJedis(){
        return jedisPool.getResource();
    }
}

(3)、测试

 @Test
    public void test02(){
        Jedis jedis = JedisToolUtils.getJedis();

        jedis.set("world","earth");

        jedis.close();

    }

 


版权声明:本文为l0510402015原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。