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();
    }


}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM