Jedis連接池


jedis是官方首選的java客戶端開發包

Redis不僅是使用命令來操作,現在基本上主流的語言都有客戶端支持,比如java、C、C#、C++、php、Node.js、Go等。 

在官方網站里列一些Java的客戶端,有Jedis、Redisson、Jredis、JDBC-Redis、等其中官方推薦使用Jedis和Redisson。 

在企業中用的最多的就是Jedis,Jedis同樣也是托管在github上,

地址:https://github.com/xetorthio/jedis。
下載jedis解壓后得到jar包如下:java操作redis數據庫API(Jedis)

 

jedis常用API

方法 解釋
new Jedis(host, port) 創建jedis對象,參數host是redis服務器地址,參數port是redis服務端口
set(key,value) 設置字符串類型的數據
get(key) 獲得字符串類型的數據
hset(key,field,value) 設置哈希類型的數據
hget(key,field) 獲得哈希類型的數據
lpush(key,values) 設置列表類型的數據
lpop(key) 列表左面彈棧
rpop(key) 列表右面彈棧
del(key) 刪除指定的key

 

 

 

 

jedis連接池的使用

jedis連接池的基本概念

jedis連接資源的創建與銷毀是很消耗程序性能,所以jedis為我們提供了jedis的池化技術

jedisPool在創建時初始化一些連接資源存儲到連接池中,使用jedis連接資源時不需要創建,

而是從連接池中獲取一個資源進行redis的操作,使用完畢后,不需要銷毀該jedis連接資源,

而是將該資源歸還給連接池,供其他請求使用。

 

package com.baidu;

import org.junit.Test;
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig;

public class jedisPool {
    @Test
    public void testJedisPool(){
        //1 獲得連接池配置對象,設置配置項
        JedisPoolConfig config = new JedisPoolConfig();
        // 1.1 最大連接數
        config.setMaxTotal(30);

        //1.2 最大空閑連接數
        config.setMaxIdle(10);

        //獲得連接池
        JedisPool jedisPool = new JedisPool(config,"localhost",6379);


        Jedis jedis=null;
        try {
            //3.獲得核心對象
             jedis = jedisPool.getResource();
            //4.設置數據
            jedis.set("name","xinruyi");
            //5.獲得數據
            String name = jedis.get("name");
            System.out.println(name);
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            if(jedis!=null){
                jedis.close();
            }
        }

        //虛擬機關閉時,釋放pool資源
        if(jedisPool!=null){
            jedisPool.close();
        }
    }
}

  



案例-編寫jedis連接池工具類

/*JedisUtil*/

package com.baidu;

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

import java.util.ResourceBundle;
/*jedis工具類*/

public final class JedisUtil {
    private JedisUtil() {}
    private static JedisPool jedisPool;
    private static int maxtotal;
    private static int maxwaitmillis;
    private static String host;
    private static int port;

    /*讀取jedis.properties配置文件*/
    static{
        ResourceBundle rb = ResourceBundle.getBundle("jedis");
        maxtotal = Integer.parseInt(rb.getString("maxtotal"));
        maxwaitmillis = Integer.parseInt(rb.getString("maxwaitmillis"));
        host = rb.getString("host");
        port = Integer.parseInt(rb.getString("port"));
    }

    /*創建連接池*/
    static{
        JedisPoolConfig jedisPoolConfig = new JedisPoolConfig();
        jedisPoolConfig.setMaxTotal(maxtotal);
        jedisPoolConfig.setMaxWaitMillis(maxwaitmillis);
        jedisPool = new JedisPool(jedisPoolConfig,host,port);
    }

    /*獲取jedis*/
    public static Jedis getJedis(){
        return jedisPool.getResource();
    }

    /*關閉Jedis*/
    public static void close(Jedis jedis){
        if(jedis!=null){
            jedis.close();
        }
    }
}

  

配置文件

 

 



 


免責聲明!

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



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