iT邦幫忙

鐵人檔案

2026 iThome 鐵人賽
回列表
自我挑戰組

從購物車到秒殺:30 天 Redis 高併發自學筆記 系列

目前是金融相關的全端工程師,工作中沒用過 Redis,也沒真正遇過高併發,但我對「活動開始的瞬間湧入幾十萬人的系統怎麼活下來」很好奇。這 30 天,我會從零學 Redis,用電商場景當練習題:從資料型別、持久化、叢集,一路走到快取三災、分散式鎖與秒殺防超賣。沒有高併發環境,那就用壓測自己造一個,親眼看超賣發生,再用 Redis 修好它。這是一份從零開始的自學筆記。

參賽天數 21 天 | 共 21 篇文章 | 0 人訂閱 訂閱系列文 RSS系列文
DAY 1

Day 1|為什麼想學 Redis?

自我介紹 目前是金融相關乙方的全端工程師,工作內容大多是 CRUD,還有處理各種複雜的邏輯需求。 流量很好預測,平常不太會遇到高流量或高併發,頂多就是多筆送審的...

2026-09-14 ‧ 由 ino38961 分享
DAY 2

Day 2|環境準備

啟動 Redis 用 Docker,很方便: # docker-compose.yml services: redis: image: redis:...

2026-09-15 ‧ 由 ino38961 分享
DAY 3

Day 3|Redis 為什麼快?

先看數字 環境架好了,先跑內建的壓測工具,有數字再談原理: docker exec redis30days redis-benchmark -t set,get...

2026-09-16 ‧ 由 ino38961 分享
DAY 4

Day 4|String

常用指令 String 是最單純的型別,一個 key 對一個值。 SET key value GET key MGET key ...(一次取多個)...

2026-09-17 ‧ 由 ino38961 分享
DAY 5

Day 5|購物車:String 還是 Hash?

購物車是存什麼 一個使用者對到多個「商品 + 數量」,最常做的動作是「某一項 +1」。 按照 Day 4 的做法,整包存成 JSON: SET cart:01...

2026-09-18 ‧ 由 ino38961 分享
DAY 6

Day 6|List

常用指令 List 是一串有順序的字串,兩頭都可以推,也都可以拿。 LPUSH key value ...(從左邊推進去,回傳推完的長度)| p2 p1 p...

2026-09-19 ‧ 由 ino38961 分享
DAY 7

Day 7|Set

常用指令 Set 是一堆不重複的字串,沒有順序。 SADD key member ...(加進去,回傳真的加進去幾個,重複的算 0) SMEMBERS...

2026-09-20 ‧ 由 ino38961 分享
DAY 8

Day 8|Sorted Set 排行榜

常用指令 Sorted Set 就是 Set 再加一個分數,Redis 會按照分數自己排好。 ZADD key score member ...(加進去,回...

2026-09-21 ‧ 由 ino38961 分享
DAY 9

Day 9|Bitmap 與 HyperLogLog

前面幾天的型別都是「存什麼就有什麼」,要準確答案就得把資料整包留著。今天這兩個反過來,用很小的記憶體換一個夠用的答案。 常用指令 Bitmap 不是新型別,底層...

2026-09-22 ‧ 由 ino38961 分享
DAY 10

Day 10|Stream

Day 6 拿 List 當 Queue,最後列了三個缺點:沒有 ACK、沒有重試、沒有消費者群組。今天的 Stream 三個都有,一個一個來看。 常用指令 S...

2026-09-23 ‧ 由 ino38961 分享