2025-07-18 Redis 是什麼
2025-07-18 Redis 是什麼
🧠 Redis 是什麼?
Redis 是一種超快速的記憶體資料庫(In-memory Database),名字全稱是:
REmote DIctionary Server
它最早是為了解決「資料庫查詢太慢」的問題而誕生的。
一般的資料庫(像 Oracle、MySQL)把資料存放在硬碟上;
而 Redis 把資料放在記憶體裡(RAM),所以速度可以快上 數百倍以上。
🚀 Redis 的主要用途
Redis 通常不會單獨使用,而是搭配主要的資料庫一起使用。
它最常見的用途有:
| 用途 | 說明 |
|---|---|
| 🔹 快取(Cache) | 將常用資料暫存在記憶體中,減少資料庫查詢負擔。 例:熱門商品清單、使用者登入資訊、查詢結果。 |
| 🔹 Session 儲存 | Web 系統可以把使用者登入狀態存在 Redis 裡。 |
| 🔹 即時排行榜 / 計數器 | Redis 提供像 INCR(遞增)等指令,很適合做「點讚數、瀏覽次數」這類功能。 |
| 🔹 訊息佇列(Message Queue) | 使用 List 或 Stream 來暫存工作任務(像訂單通知、郵件發送)。 |
| 🔹 Pub/Sub(發佈 / 訂閱) | 做即時通訊或通知系統。 |
| 🔹 快取訂單狀態 | 電商系統會先在 Redis 中保存訂單的暫時狀態,再寫入資料庫。 |
🧩 Redis 與傳統資料庫的差異
| 比較項目 | Redis | Oracle / MySQL 等傳統資料庫 |
|---|---|---|
| 資料存放位置 | 記憶體(RAM) | 硬碟 |
| 存取速度 | 極快(微秒等級) | 較慢(毫秒等級) |
| 資料型態 | 鍵值對(Key-Value)結構 | 關聯式資料表 |
| 適合場景 | 快取、即時資料 | 長期保存資料 |
| 是否持久化 | 可選(支援快照或 AOF 持久化) | 預設永久保存 |
🔑 Redis 的基本概念:Key-Value 資料結構
Redis 的每筆資料都是:
1 | key → value |
常見型態有:
| 型態 | 範例用途 |
|---|---|
| String | 簡單字串或數字,例如 user:1:name = "Lily" |
| Hash | 類似物件,例如 user:1 = {name: "Lily", age: 20} |
| List | 有序串列(像佇列),例如待處理訂單列表 |
| Set | 無序集合(不重複),例如使用者標籤 |
| Sorted Set (ZSet) | 排序集合,例如排行榜 |
| Stream | 用來處理訊息串流或事件記錄 |
🧰 Redis 範例指令(體驗感)
1 | SET name "Lily" |
🧱 Redis 在你的系統中扮演的角色(以你的專案為例)
你的 Web API-based 財會系統或 LINE 訂單系統中,Redis 可能會:
- 暫存使用者的購物車或登入狀態
- 快取常查詢的資料(例如產品清單或客戶資訊)
- 快速更新訂單狀態並通知使用者(例如 LINE bot 訊息)
- 作為暫時的訊息佇列,讓訂單處理流程更順暢
是否希望我幫你畫一張圖,說明 Redis 與 Oracle 在整個系統中的資料流關係?
(例如使用者下訂單 → Redis → Oracle → LINE 通知)