背景
PR #662 實現了 Redis distributed lock 用於解決高並發寫入的 lock contention 問題。
相關連結
Redis Lock 使用情境
| 用戶類型 |
需要的 lock |
需要 Redis? |
| 單一 Agent |
原本的 file lock 就夠了 |
❌ 不需要 |
| 多個 Agent 同時寫入 |
需要分散式 lock |
✅ 需要 |
跨平台相容性
| 平台 |
Redis 安裝方式 |
| Windows |
MSI 安裝(MSOpenTech 版本) |
| Mac |
brew install redis |
| Linux |
apt/yum/dnf |
雲端選項(免自管)
- Redis Cloud(免費方案)
- Upstash
- Redis Enterprise Cloud
設計考量
目前實作(Graceful Fallback)
優先嘗試 Redis lock,Redis 不可用時,回傳 no-op lock(程式照常跑)。
| 情境 |
行為 |
優點 |
缺點 |
| 有 Redis |
用 Redis lock |
真正解決高並發 |
需要安裝 |
| 無 Redis |
no-op lock |
不阻塞程式 |
失去 lock 保護 |
替代方案:Failover 到 File Lock
Redis 不可用時,用原本的 file lock,保有 lock 保護,只是效能較差。
建議
- 單一 Agent 用戶:不需要 Redis,原本就能用
- 多個 Agent 同時寫入:需要 Redis(本地或雲端)
- 文件說明:需要清楚說明什麼情況需要 Redis
待確認
背景
PR #662 實現了 Redis distributed lock 用於解決高並發寫入的 lock contention 問題。
相關連結
Redis Lock 使用情境
跨平台相容性
雲端選項(免自管)
設計考量
目前實作(Graceful Fallback)
優先嘗試 Redis lock,Redis 不可用時,回傳 no-op lock(程式照常跑)。
替代方案:Failover 到 File Lock
Redis 不可用時,用原本的 file lock,保有 lock 保護,只是效能較差。
建議
待確認