三種獲取redis的連線,以及redis_String型別演示(適合新手)

達拉道·蒂夏發表於2020-12-25

0>確保redis程式服務開啟

1>第一種:直接獲取redis連線,通過redis.()方法測試連線,如果返回PONG則證明連線正常

 //1> jedis的入門程式碼案例,測試連線
@Test
    public void test01(){
    //1. 獲取java連線 redis的連線物件
    Jedis jedis = new Jedis("node1", 6379);

    //2. 執行相關操作
    String ping = jedis.ping();
    System.out.println(ping);    //返回PONG,說明連線成功

    //3. 釋放資源
    jedis.close();
}

2>第二種:通過redis連線池獲取redis連線,建立連線池的時候需要指定引數,
setmaxTotal(最大連線數),
setMaxIdle(不繁忙時最大連線數),
setMinIdle(不繁忙時最少連線數);

//2> jedis連線池相關操作
    @Test
    public void test02(){

        //1. 建立連線池物件(需要通過配置指定連線池各種情況下有多少連線)
        JedisPoolConfig config = new JedisPoolConfig();
        config.setMaxTotal(50);  //連線池最大有多少連線
        config.setMaxIdle(25);   //不繁忙時最多有多少個
        config.setMinIdle(10);   //不繁忙時最少有多少個
        JedisPool jedisPool = new JedisPool(config, "node1", 6379);

        //2. 從連線池獲取一個連線物件
        Jedis jedis = jedisPool.getResource();

        //3. 執行相關操作
        System.out.println(jedis.ping());


        //4. 釋放資源
        jedis.close();

    }

3>自定義RedisUtils,利用靜態程式碼塊使連線池隨著類的載入只載入一次,防止每次想建立連線的時候都得先構建連線池浪費資源;

public class JedisUtils {

    private static JedisPool jedisPool;
    
	//構造方法私有化
    private JedisUtils(){}

    static {

        //靜態程式碼塊:隨著類的載入而載入,一般只會載入一次
        JedisPoolConfig config = new JedisPoolConfig();
        config.setMaxTotal(50);  //連線池最大有多少連線
        config.setMaxIdle(25);   //不繁忙時最多有多少個
        config.setMinIdle(10);   //不繁忙時最少有多少個
        jedisPool = new JedisPool(config, "node1", 6379);

    }
    //提供方法獲取jedis連線物件
    public static Jedis getJedis(){

        return jedisPool.getResource();
    }

}

3.1>測試工具類

 //3> 測試工具類
    @Test
    public void test03(){

        //1. 從工具類獲取連線
        Jedis jedis = JedisUtils.getJedis();

        //2. 執行相關操作(測試連線)
        System.out.println(jedis.ping());

        //3. 釋放資源(歸還)
        jedis.close();

    }

4> redis的五種資料型別

字串:String
特點: 儲存所有的字元和字串
應用場景: 做快取使用

雜湊 :hash
特點: 相當於java中hashMap集合
應用場景: 可以儲存javaBean物件, 使用場景不多,可被String替代

list:集合
特點: 相當於java中linkList, 是一個連結串列的結構
應用場景: 做任務佇列,在java中客戶端提供了執行緒安全獲取集合資料的方式

set :集合
特點: 唯一, 無序
應用場景: 集合運算,例如去重複的操作
應用場景: 一般用來做排行榜

有序set集合: sorted set
特點:唯一, 有序

4.1> 使用jedis操作redis_String(String型別)

 //4.使用jedis操作redis_string
    @Test
    public void test04() throws Exception{

        //1. 從工具類獲取連線
        Jedis jedis = JedisUtils.getJedis();

        //2. 執行相關操作,(操作redis中String型別)
        String ping = jedis.ping();
        if ("PONG".equalsIgnoreCase(ping)){    //進去說明正常連線到redis

            //2.1 設定資料
            jedis.set("name","索隆");
            jedis.set("age","25");

            //2.2 獲取資料
            String name = jedis.get("name");
            String age = jedis.get("age");
            System.out.println(name+"   "+age);
            System.out.println("-----------------------------");

            //2.3 自增 +1
            jedis.incr("age");
            jedis.incr("age");
            jedis.incr("age");
            jedis.incr("age");

            //2.4 自減 -1
            jedis.decr("age");
            jedis.decr("age");

            //2.5 獲取age的值
            System.out.println("年齡為:"+jedis.get("age"));
            System.out.println("------------------------------");

            //2.6 設定過期時間:  為新建立的key設定過期時間  setex
            jedis.setex("birthday",10,"1997-11-11");

            //2.7 獲取有效時間 :ttl
            while(jedis.exists("birthday")){  //進來就說明還存在

                Long ttl = jedis.ttl("birthday");
                System.out.println("有效時間還有" + ttl);

                //睡眠
                Thread.sleep(1000);

            }

        }

        //3. 釋放資源(歸還)
        jedis.close();


    }

相關文章