首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 綜合教學

Redis Java 客戶端 Jedis 入門:依賴、連線池、主從配置完整教學

     編輯:Java 綜合教學

Redis Java 客戶端 Jedis 入門教學

Jedis 是 Redis 官方推薦的 Java 客戶端,功能豐富、效能優異。本文涵蓋依賴引入、基本操作、連線池最佳實務、主從同步原理與配置。

一、引入 Jedis 依賴

推薦使用 Maven 管理:

<dependency>
  <groupId>redis.clients</groupId>
  <artifactId>jedis</artifactId>
  <version>2.8.0</version>
  <type>jar</type>
  <scope>compile</scope>
</dependency>

會自動引入 commons-pool2 作為連線池依賴。

二、基本使用範例

Jedis jedis = new Jedis("localhost");
jedis.set("foo", "bar");
String value = jedis.get("foo");
jedis.close();

三、多執行緒環境必須使用連線池

錯誤做法:多執行緒共用單一 Jedis 實例 → 非執行緒安全;每個執行緒建立獨立 Jedis → 連線耗盡。

正確做法:使用 JedisPool(執行緒安全、連線複用)。

// 初始化連線池
JedisPool pool = new JedisPool(new JedisPoolConfig(), "localhost");

// 取得資源(Java 7+ try-with-resources 自動關閉)
try (Jedis jedis = pool.getResource()) {
    jedis.set("key", "value");
    System.out.println(jedis.get("key"));
}

// 應用關閉時銷毀連線池
pool.close(); // 或 pool.destroy()

JedisPoolConfig 重要預設值

  • testWhileIdle = true:空閒時檢測連線有效性
  • minEvictableIdleTimeMillis = 60000:最小空閒驅逐時間 60 秒
  • timeBetweenEvictionRunsMillis = 30000:驅逐檢測間隔 30 秒

四、Redis 主從複製

1. 複製流程

  1. Slave 連線 Master,發送 SYNC 命令
  2. Master 背景生成 RDB 快照,主執行緒緩衝寫命令
  3. 快照完成傳送給 Slave,Slave 載入記憶體
  4. Master 發送緩衝的寫命令給 Slave
  5. 後續寫命令持續同步

2. 架構特點

  • 一個 Master 可掛多個 Slave,Slave 可再掛 Slave,形成樹狀結構
  • Master 非阻塞,Slave 同步過程會阻塞

3. 建立主從關係

方式一:配置檔(靜態,重啟生效)

slaveof 192.168.1.35 6379

方式二:命令動態修改(線上生效)

jedis.slaveOf("192.168.1.35", 6379);

4. 奴隸升級為主節點

// 取消原主從關係,自己變為 Master
jedis.slaveofNoOne();
// 其他 Slave 指向新 Master
jedis.slaveOf("192.168.1.36", 6379);
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved