欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

redis實現(xiàn)分布式鎖的方法

本篇文章展示了redis實現(xiàn)分布式鎖的方法具體操作,代碼簡明扼要容易理解,絕對能讓你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。

目前創(chuàng)新互聯(lián)已為千余家的企業(yè)提供了網(wǎng)站建設、域名、網(wǎng)頁空間、網(wǎng)站托管、服務器租用、企業(yè)網(wǎng)站設計、鹿邑網(wǎng)站維護等服務,公司將堅持客戶導向、應用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(fā)展。

分布式鎖其實可以理解為:控制分布式系統(tǒng)有序的去對共享資源進行操作,通過互斥來保持一致性。

舉個不太恰當?shù)睦樱杭僭O共享的資源就是一個房子,里面有各種書,分布式系統(tǒng)就是要進屋看書的人,分布式鎖就是保證這個房子只有一個門并且一次只有一個人可以進,而且門只有一把鑰匙。

使用redis實現(xiàn)分布式鎖                    

使用redis命令 set key value NX EX max-lock-time 實現(xiàn)加鎖

使用redis命令 EVAL 實現(xiàn)解鎖

加鎖:

Jedis jedis = new Jedis("127.0.0.1", 6379);
 
 private static final String SUCCESS = "OK";
 
 /**
 
  * 加鎖操作
 
  * @param key 鎖標識
 
  * @param value 客戶端標識
 
  * @param timeOut 過期時間
 
  */
 
 public Boolean lock(String key,String value,Long timeOut){
 
     String var1 = jedis.set(key,value,"NX","EX",timeOut);
 
     if(LOCK_SUCCESS.equals(var1)){
 
         return true;
 
     }
 
     return false;
 
 }

解讀:

加鎖操作:jedis.set(key,value,"NX","EX",timeOut)【保證加鎖的原子操作】

key就是redis的key值作為鎖的標識,value在這里作為客戶端的標識,只有key-value都比配才有刪除鎖的權利【保證安全性】

通過timeOut設置過期時間保證不會出現(xiàn)死鎖【避免死鎖】

NX,EX什么意思?

NX:只有這個key不存才的時候才會進行操作,if not exists;

EX:設置key的過期時間為秒,具體時間由第5個參數(shù)決定

解鎖

Jedis jedis = new Jedis("127.0.0.1", 6379);
 
 private static final Long UNLOCK_SUCCESS = 1L;
 
 /**
 
  * 解鎖操作
 
  * @param key 鎖標識
 
  * @param value 客戶端標識
 
  * @return
 
  */
 
 public static Boolean unLock(String key,String value){
 
     String luaScript = "if redis.call(\"get\",KEYS[1]) == ARGV[1] then return redis.call(\"del\",KEYS[1]) else  return 0 end";
 
     Object var2 = jedis.eval(luaScript,Collections.singletonList(key), Collections.singletonList(value));
 
     if (UNLOCK_SUCCESS == var2) {
 
         return true;
 
     }
    return false;
 }

解讀:

luaScript 這個字符串是個lua腳本,代表的意思是如果根據(jù)key拿到的value跟傳入的value相同就執(zhí)行del,否則就返回0【保證安全性】

jedis.eval(String,list,list);這個命令就是去執(zhí)行l(wèi)ua腳本,KEYS的集合就是第二個參數(shù),ARGV的集合就是第三參數(shù)【保證解鎖的原子操作】

上述就實現(xiàn)了怎么使用redis去正確的實現(xiàn)分布式鎖,但是有個小缺陷就是鎖過期時間要設置為多少合適,這個其實還是需要去根據(jù)業(yè)務場景考量一下的。

看完上述內容,你們掌握redis實現(xiàn)分布式鎖的方法的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!

文章名稱:redis實現(xiàn)分布式鎖的方法
鏈接地址:http://aaarwkj.com/article42/pdicec.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站內鏈、微信小程序、自適應網(wǎng)站、網(wǎng)站導航、關鍵詞優(yōu)化、全網(wǎng)營銷推廣

廣告

聲明:本網(wǎng)站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

成都定制網(wǎng)站建設
婷婷人妻中文字幕在线| 日韩亚洲精品99综合观看| 手机免费在线观看国产精品| 亚洲欧洲成熟熟女妇专区乱| 色橹橹欧美午夜精品福利| 三级久久三级久久三级| 97门久欧美日韩久久| 久久亚洲一区二区三区乱码 | 国产在线拍揄自揄视频不卡99| 亚洲国产熟女一区二区三| 日日干天天日夜夜操| 天天操天天干蜜桃av| 国产欧美日韩亚洲精品区| 国产av一区二区三区高潮蜜| 亚洲精品一区二区三区pp| 欧美亚洲国产日韩另类| 中文欧美一区二区精品| 日韩精品中文字幕免费人妻| av中文字幕在线电影| 激情五月开心五月麻豆| 视频精品一区二区在线观看| 久久精品熟女亚洲av韩国| 久久午夜视频在线观看| 未满十八禁在线观看免费| 亚洲一区有码在线观看| 午夜福利在线视频观看| 人妻少妇久久久久久69| 亚洲一级特黄大片在线观看| 日本特黄特色三级在线观看| 亚洲视频在线的视频在| 中文字幕精品一区二区介绍 | 日本韩国欧美一区二区在线| 久久人妻精品一区二区三区| 在线观看日韩三级av| 宫部凉花中文字幕在线| 日韩精品熟妻人女亚洲一区 | 亚洲日本日本午夜精品| 漂亮人妻少妇中文字幕| 成人av免费高清在线| 国内精品久久久久久2021| 日本精品一区二区三区免费|