[Concurrency] Event Ticketing System Design – 購票系統設計指南
Intro 設計要點 User 限制 在 User Base 系統中,驗證使用者購票資格後,應對該使用者的 status 資料列進行鎖定(row-level lock),以防止同一使用者在高併發情況下同時發起多個搶票請求,從而超過購票數量上限。 即時搶票模型 實際搶票操作可使用高效能且支援 ACID 的資料結構來實現,例如使用 Redis String 存庫存數量配合 DECR 指令取票,確保票數正確扣減。 Ticket Database 預載策略:活動開始前,可將 ticket 的 ID 或 Token 從 Database 導入 Redis (如使用 LIST 或 QUEUE 結構),使用者搶票時直接從 Redis 取票 (Popup)。 […]