日韩电影大全网站,精品亚洲一区二区三区四区五区,亚洲影视一区二区三区,欧美影院精品

域名綜合信息查詢...
  • 綜合
  • Whois
×
歷史記錄
首頁 > 常見問題 > 正文

redis 分布式鎖的缺陷是什么?

發布時間:2023-08-24 14:50:24 來源:互聯網 作者:s 點擊量:2057

  redis 分布式鎖的缺陷:1、客戶端長時間阻塞導致鎖失效問題;2、redis服務器時鐘漂移問題;3、單點實例安全問題。客戶端長時間阻塞導致鎖失效問題是指,某個客戶端得到了鎖,因為某些原因導致長時間阻塞,然后業務程序還沒執行完鎖就過期了。

  一、redis 分布式鎖的缺陷

  1、客戶端長時間阻塞導致鎖失效問題

  客戶端1得到了鎖,因為網絡問題或者GC等原因導致長時間阻塞,然后業務程序還沒執行完鎖就過期了,這時候客戶端2也能正常拿到鎖,可能會導致線程安全的問題。

  2、redis服務器時鐘漂移問題

  如果redis服務器的機器時鐘發生了向前跳躍,就會導致這個key過早超時失效,比如說客戶端1拿到鎖后,key的過期時間是12:02分,但redis服務器本身的時鐘比客戶端快了2分鐘,導致key在12:00的時候就失效了,這時候,如果客戶端1還沒有釋放鎖的話,就可能導致多個客戶端同時持有同一把鎖的問題。

  3、單點實例安全問題

  如果redis是單master模式的,當這臺機宕機的時候,那么所有的客戶端都獲取不到鎖了,為了提高可用性,可能就會給這個master加一個slave,但是因為redis的主從同步是異步進行的,可能會出現客戶端1設置完鎖后,master掛掉,slave提升為master,因為異步復制的特性,客戶端1設置的鎖丟失了,這時候客戶端2設置鎖也能夠成功,導致客戶端1和客戶端2同時擁有鎖。

  二、分布式鎖需要滿足的特性

  · 互斥性:在任何時刻,對于同一條數據,只有一臺應用可以獲取到分布式鎖;

  · 高可用性:在分布式場景下,一小部分服務器宕機不影響正常使用,這種情況就需要將提供分布式鎖的服務以集群的方式部署;

  · 防止鎖超時:如果客戶端沒有主動釋放鎖,服務器會在一段時間之后自動釋放鎖,防止客戶端宕機或者網絡不可達時產生死鎖;

  · 獨占性:加鎖解鎖必須由同一臺服務器進行,也就是鎖的持有者才可以釋放鎖,不能出現你加的鎖,別人給你解鎖了。

域名注冊價格:https://www.juming.com/regym.htm?t=seo_adzcw
域名一口價交易:https://www.juming.com/ykj/?t=seo_admm
過期域名查詢:https://www.juming.com/gq/?t=seo_adqz
聲明:本網站發布的內容(圖片、視頻和文字)以原創、轉載和分享網絡內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:400-997-2996;郵箱:service@Juming.com。本站原創內容未經允許不得轉載,或轉載時需注明出處:聚名網 redis 分布式鎖的缺陷是什么?
關鍵詞: Redis分布式鎖

登錄聚名,您可以享受以下權益:

立即登錄/注冊
主站蜘蛛池模板: 天柱县| 临沭县| 云霄县| 绥阳县| 渭源县| 渑池县| 滕州市| 铅山县| 古浪县| 嘉禾县| 三门峡市| 永泰县| 上林县| 崇明县| 武邑县| 新蔡县| 牙克石市| 杭州市| 区。| 时尚| 漳浦县| 巴彦淖尔市| 共和县| 呼和浩特市| 长寿区| 山西省| 仲巴县| 聊城市| 建宁县| 嵊州市| 布拖县| 云和县| 溆浦县| 太康县| 嘉鱼县| 衡阳市| 鹤山市| 卫辉市| 渝北区| 花莲市| 永昌县|