1. 程式人生 > 實用技巧 >6.java連線Redis

6.java連線Redis

Jedis介紹

Redis不僅是使用命令來操作,現在基本上主流的語言(java、C、C#、C++、php、Node.js、Go等)都有客戶端支援。
在官方網站裡列一些Java的客戶端,有Jedis、Redisson、Jredis、JDBC-Redis、等;其中官方推薦使用Jedis和Redisson。在企業中用的最多的就是Jedis,下面我們就重點學習下Jedis。
Jedis同樣也是託管在github上,地址:https://github.com/xetorthio/jedis

java入門程式

依賴:

    <!-- https://mvnrepository.com/artifact/org.apache.commons/commons-pool2 
--> <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-pool2</artifactId> <version>2.3</version> </dependency> <!-- https://mvnrepository.com/artifact/redis.clients/jedis --> <dependency> <
groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <version>2.7.0</version> </dependency>

程式碼:

public class Demo1 {
    /**
     * 單例項連線redis資料庫
     */
    @Test
    public void first(){
        Jedis jedis = new Jedis("192.168.157.133", 6379);
        jedis.set("addr","北京");
        System.out.println(jedis.get("addr"));
    }
}

連線池

    /**
     * 連線池
     */
    @Test
    public void second(){
//        1.設定連線池的配置物件
        JedisPoolConfig config = new JedisPoolConfig();
//        2.設定池中最大連線數[可選]
        config.setMaxTotal(50);
//        3.設定空閒時間池中的連線數[可選]
        config.setMaxIdle(10);
//        4. 設定連線池物件
        JedisPool pool = new JedisPool(config, "192.168.157.133", 6379);
//        5.從池中獲取連線物件
        Jedis jedis = pool.getResource();
        System.out.println(jedis.get("addr"));
//        6.連線歸還池中
    }

定義連線池工具類

package utils;

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

public class JedisUtils {
    //    1.定義一個連線池物件
    private static final JedisPool POOL;

    /**
     *  靜態程式碼塊初始化連線池物件:
     *     靜態程式碼特點: 隨著類的載入而執行,而且只執行一次,它僅能初始化類變數,即static修飾的資料成員。
     * */
    static {
//        1.設定連線池的配置物件
        JedisPoolConfig config = new JedisPoolConfig();
//        2.設定池中最大連線數[可選]
        config.setMaxTotal(50);
//        3.設定空閒時間池中的連線數[可選]
        config.setMaxIdle(10);
//        4. 設定連線池物件
        POOL = new JedisPool(config, "192.168.157.133", 6379);
    }

    /**
     * 從連線池獲取連線方法
     */
    public static Jedis getJedis() {
        return POOL.getResource();
    }
}