有關Redlock的具體使用方式能夠參考我以前轉載的兩篇文章《Redis分佈式鎖最牛逼的實現》和《Redission實現Redis分佈式鎖的N種姿式》。程序員
使用Redis分佈式鎖並不能作到萬無一失。通常而言,Redis分佈式鎖的優點在於性能,而若是要考慮到可靠性,那麼Zookeeper、etcd這類的組件會比Redis要高。固然,在合適的環境下使用基於數據庫實現的分佈式鎖會更合適,參考《基於數據庫實現分佈式鎖》。redis
不過就以可靠性而言,沒有任何組件是徹底可靠的,程序員的價值不單單在於表象地如何靈活運用這些組件,而在於如何基於這些不可靠的組件構建一個可靠的系統。算法
仍是那句老話,選擇何種方案,合適最重要。數據庫
前幾天發的一篇文章《Redlock:Redis分佈式鎖最牛逼的實現》,引發了一些同窗的討論,也有一些同窗提出了一些疑問,這是好事兒。本文在講解如何使用Redisson實現Redis普通分佈式鎖,以及Redlock算法分佈式鎖的幾種方式的同時,也附帶解答這些同窗的一些疑問。分佈式
zookeeper or redis性能
沒有絕對的好壞,只有更適合本身的業務。就性能而言,redis很明顯優於zookeeper;就分佈式鎖實現的健壯性而言,zookeeper很明顯優於redis。如何選擇,取決於你的業務!ui