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

Redis 五大核心資料類型詳解:String、Hash、List、Set、ZSet

     編輯:Java 綜合教學

Redis 五大核心資料類型詳解:String、Hash、List、Set、ZSet

Redis 作為高效能鍵值儲存系統,提供五種基礎資料結構,各具特色,適用於不同業務場景。本文系統整理其特性、底層實現與典型應用。

1. String(字串)

  • 特性: 二進位安全,可儲存任意資料(文字、圖片、序列化物件)。
  • 容量: 單值最大 512 MB。
  • 底層: SDS (Simple Dynamic String),動態字串,O(1) 取得長度。
  • 常用指令: SET, GET, INCR, DECR, MSET, MGET
  • 應用場景: 快取物件、計數器、分散式鎖、Session 共享。

2. Hash(雜湊)

  • 特性: Field-Value 鍵值對集合,類似 Java Map<String, Object>。
  • 優勢: 適合儲存物件,可單獨讀寫某個欄位,比序列化整個物件更節省頻寬與記憶體。
  • 底層: 壓縮列表 或雜湊表。
  • 常用指令: HSET, HGET, HMSET, HMGET, HGETALL, HDEL
  • 應用場景: 使用者資料、商品資訊、購物車。

3. List(列表)

  • 特性: 有序、可重複的字串列表,支援頭尾插入/彈出。
  • 底層: 雙向鏈表 或快速列表。
  • 常用指令: LPUSH, RPUSH, LPOP, RPOP, LRANGE, LLEN
  • 應用場景: 訊息佇列、最新動態列表、分頁查詢。

4. Set(集合)

  • 特性: 無序、唯一的字串集合。
  • 底層: 雜湊表,查找/插入/刪除 O(1)。
  • 常用指令: SADD, SREM, SMEMBERS, SISMEMBER, SINTER, SUNION, SDIFF
  • 應用場景: 標籤系統、共同好友、抽獎去重、IP 去重統計。

5. ZSet - Sorted Set(有序集合)

  • 特性: 每個成員關聯一個 double 分數,依分數排序,成員唯一但分數可重複。
  • 底層: 跳躍表 + 雜湊表,支援 O(log N) 範圍查詢。
  • 常用指令: ZADD, ZRANGE, ZREVRANGE, ZSCORE, ZRANK, ZINCRBY
  • 應用場景: 排行榜、延遲佇列、按權重排序、熱門搜尋關鍵字。

選型建議

需求推薦類型
簡單鍵值、計數String
物件結構化儲存、部分更新Hash
有序佇列、訊息流List
去重、集合運算Set
排序、排名、範圍查詢ZSet

提示: 實際開發中常組合使用,例如用 Hash 儲存用戶詳情,用 ZSet 維護積分排行榜,用 Set 記錄簽到天數。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved