Java与redis交互Jedis连接池JedisPool

Posted 苦瓜爆炒牛肉

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java与redis交互Jedis连接池JedisPool相关的知识,希望对你有一定的参考价值。

Java与redis交互比较常用的是Jedis。

先导入jar包:

commons-pool2-2.3.jar

jedis-2.7.0.jar

基本使用:

public class RedisTest1 {
    public static void main(String[] args) {
        Jedis jedis = new Jedis("localhost",6379);
        jedis.set("username","chichung");
        jedis.close();
    }
}

 

Jedis对象基本和redis的命令一模一样,这里不啰嗦了。

 

  • JedisPool连接池

 类似于mysql连接池,jedis也有连接池。

基本使用如下:

public class RedisTest2 {
    public static void main(String[] args) {
        // 比较特殊的是,redis连接池的配置首先要创建一个连接池配置对象
        JedisPoolConfig config = new JedisPoolConfig();
        // 当然这里还有设置属性的代码

        // 创建Jedis连接池对象
        JedisPool jedisPool = new JedisPool(config,"localhost",6379);

        // 获取连接
        Jedis jedis = jedisPool.getResource();

        // 使用

        // 关闭,归还连接到连接池
        jedis.close();
    }
}

 

一般可以抽取出来作为一个工具类使用:

例如有一个配置文件jedis.properties。

里面的内容如下:

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

工具类代码如下:

package com.chichung.redis;

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 JedisPoolUtils {
    private static JedisPool jedisPool;

    static {
        InputStream is = JedisPoolUtils.class.getClassLoader().getResourceAsStream("jedis.properties");
        Properties properties = new Properties();
        try {
            properties.load(is);
        } catch (IOException e) {
            e.printStackTrace();
        }

        JedisPoolConfig config = new JedisPoolConfig();
        config.setMaxTotal(Integer.parseInt(properties.getProperty("maxTotal")));
        config.setMaxIdle(Integer.parseInt(properties.getProperty("maxIdle")));

        jedisPool = new JedisPool(config,
                properties.getProperty("host"),
                Integer.parseInt(properties.getProperty("port")));

    }

    public static Jedis getJedis(){
        return jedisPool.getResource();
    }


}

 




以上是关于Java与redis交互Jedis连接池JedisPool的主要内容,如果未能解决你的问题,请参考以下文章

Jedis/JedisPool和Redis数据类型与特性

Jedis 连接池实例

java中使用jedis操作redis(连接池方式)

Redis 的Java客户端——Jedis连接池的使用详解

4. Redis与Java的使用

Redis入门——Jedis的基本使用