redis 提供 6 種鎖類型:setnx、redis、redlock、lua 腳本、watch + multi + exec 和可重入鎖,用于在分布式環境中協調訪問共享資源。
Redis 鎖類型
Redis 提供以下類型的鎖:
1. SETNX
原子性地設置一個鍵及其值。
如果鍵不存在,則設置成功并返回 1;否則,返回 0。
2. REDIS(分布式鎖框架)
一個基于 Redis 的分布式鎖框架。
提供高可用和容錯功能,可用于跨多個服務器實例協調鎖。
3. RedLock
一個基于 Redis 的分布式協調鎖算法。
使用多個 Redis 實例來提高可用性和容錯性。
4. Lua 腳本
允許使用 Lua 腳本原子性地執行多個 Redis 命令。
可用于創建自定義鎖機制。
5. Watch + MULTI + EXEC
通過使用 WATCH
監控鍵的變化,以及使用 MULTI
和 EXEC
原子性地執行命令,可以實現簡單的鎖。
6. 可重入鎖(Reentrant Lock)
允許線程多次獲取同一把鎖。
通過維護一個計數器來實現,該計數器記錄線程當前持有鎖的次數。