1. 程式人生 > >關於Redis分散式鎖這一篇應該是講的最好的了,先收藏起來再看!

關於Redis分散式鎖這一篇應該是講的最好的了,先收藏起來再看!

## 前言 在Java併發程式設計中,我們通常使用到`synchronized` 、`Lock`這兩個執行緒鎖,Java中的鎖,只能保證對同一個JVM中的執行緒有效。而在分散式叢集環境,這個時候我們就需要使用到分散式鎖。 **實現分散式鎖的方案** * 基於資料庫實現分散式鎖 * 基於快取Redis實現分散式鎖 * 基於Zookeeper的臨時序列化節點實現分散式鎖 ## Redis實現分散式鎖 場景:在高併發的情況下,可能有大量請求來到資料庫查詢三級分類資料,而這種資料不會經常改變,可以引入快取來儲存第一次從資料庫查詢出來的資料,其他執行緒就可以去快取中獲取資料,來減少資料庫的查詢壓力。 在叢集的環境下,就可以使用分散式鎖來控制去查詢資料庫的次數。 ##### 階段一 ![](https://upload-images.jianshu.io/upload_images/23140115-6deb782a99fb3629?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240) ``` priv