1. 程式人生 > 程式設計 >Java三種獲取redis的連線及redis_String型別演示(適合新手)

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

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

到此這篇關於Java三種獲取redis的連線及redis_String型別演示(適合新手)的文章就介紹到這了,更多相關Java獲取redis連線內容請搜尋我們以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援我們!