最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

redis分布式鎖的go-redis實(shí)現(xiàn)方法詳解

 更新時(shí)間:2020年12月10日 10:19:54   作者:陶士涵  
這篇文章主要介紹了redis分布式鎖的go-redis實(shí)現(xiàn)方法,本文給大家介紹的非常詳細(xì)對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

在分布式的業(yè)務(wù)中 , 如果有的共享資源需要安全的被訪問(wèn)和處理 , 那就需要分布式鎖

分布式鎖的幾個(gè)原則;

1.「鎖的互斥性」:在分布式集群應(yīng)用中,共享資源的鎖在同一時(shí)間只能被一個(gè)對(duì)象獲取。

2. 「可重入」:為了避免死鎖,這把鎖是可以重入的,并且可以設(shè)置超時(shí)。

3. 「高效的加鎖和解鎖」:能夠高效的加鎖和解鎖,獲取鎖和釋放鎖的性能也好。

4. 「阻塞、公平」:可以根據(jù)業(yè)務(wù)的需要,考慮是使用阻塞、還是非阻塞,公平還是非公平的鎖。

redis實(shí)現(xiàn)分布式鎖主要靠setnx命令

1. 當(dāng)key存在時(shí)失敗 , 保證互斥性

2.設(shè)置了超時(shí) , 避免死鎖

3.利用mutex保證當(dāng)前程序不存在并發(fā)沖突問(wèn)題

package redis

import (
 "context"
 "github.com/go-redis/redis/v8"
 "github.com/taoshihan1991/miaosha/setting"
 "log"
 "sync"
 "time"
)

var rdb *redis.Client
var ctx = context.Background()
var mutex sync.Mutex

func NewRedis() {
 rdb = redis.NewClient(&redis.Options{
  Addr:  setting.Redis.Ip + ":" + setting.Redis.Port,
  Password: "", // no password set
  DB:  0, // use default DB
 })
}
func Lock(key string) bool {
 mutex.Lock()
 defer mutex.Unlock()
 bool, err := rdb.SetNX(ctx, key, 1, 10*time.Second).Result()
 if err != nil {
  log.Println(err.Error())
 }
 return bool
}
func UnLock(key string) int64 {
 nums, err := rdb.Del(ctx, key).Result()
 if err != nil {
  log.Println(err.Error())
  return 0
 }
 return nums
}

到此這篇關(guān)于redis分布式鎖的go-redis實(shí)現(xiàn)方法的文章就介紹到這了,更多相關(guān)redis分布式鎖內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 基于Redis過(guò)期事件實(shí)現(xiàn)訂單超時(shí)取消

    基于Redis過(guò)期事件實(shí)現(xiàn)訂單超時(shí)取消

    這篇文章主要介紹了基于Redis過(guò)期事件實(shí)現(xiàn)訂單超時(shí)取消,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-05-05
  • Redis整合Lua腳本的實(shí)現(xiàn)操作

    Redis整合Lua腳本的實(shí)現(xiàn)操作

    Redis對(duì)lua腳本的支持是從Redis2.6.0版本開(kāi)始引入的,它可以讓用戶在Redis服務(wù)器內(nèi)置的Lua解釋器中執(zhí)行指定的lua腳本,本文就來(lái)介紹一下Redis整合Lua腳本的實(shí)現(xiàn),感興趣的可以了解一下
    2024-03-03
  • Redis內(nèi)存滿了的幾種原因和最佳解決方案

    Redis內(nèi)存滿了的幾種原因和最佳解決方案

    Redis是一款高性能的內(nèi)存數(shù)據(jù)庫(kù),被廣泛應(yīng)用于緩存、消息隊(duì)列、計(jì)數(shù)器等場(chǎng)景,然而,由于Redis是基于內(nèi)存的數(shù)據(jù)庫(kù),當(dāng)數(shù)據(jù)量過(guò)大或者配置不合理時(shí),就有可能導(dǎo)致Redis的內(nèi)存滿,本文將介紹Redis內(nèi)存滿的幾種原因,并提供相應(yīng)的解決方案,需要的朋友可以參考下
    2023-11-11
  • Redis入門(mén)基礎(chǔ)常用操作命令整理

    Redis入門(mén)基礎(chǔ)常用操作命令整理

    這篇文章主要為大家介紹了Redis入門(mén)基礎(chǔ)常用操作命令的整理,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-05-05
  • redis 限制內(nèi)存使用大小的實(shí)現(xiàn)

    redis 限制內(nèi)存使用大小的實(shí)現(xiàn)

    這篇文章主要介紹了redis 限制內(nèi)存使用大小的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-05-05
  • Redis添加商鋪查詢緩存功能實(shí)現(xiàn)

    Redis添加商鋪查詢緩存功能實(shí)現(xiàn)

    文章主要介紹了如何使用流程圖來(lái)設(shè)計(jì)實(shí)現(xiàn)邏輯,并詳細(xì)講解了Service層的實(shí)現(xiàn)方法,本文結(jié)合示例代碼給大家介紹的非常詳細(xì),感興趣的朋友一起看看吧
    2025-03-03
  • 基于Redis的List實(shí)現(xiàn)特價(jià)商品列表功能

    基于Redis的List實(shí)現(xiàn)特價(jià)商品列表功能

    本文通過(guò)場(chǎng)景分析給大家介紹了基于Redis的List實(shí)現(xiàn)特價(jià)商品列表,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2021-08-08
  • 通過(guò)prometheus監(jiān)控redis實(shí)時(shí)運(yùn)行狀態(tài)的操作方法

    通過(guò)prometheus監(jiān)控redis實(shí)時(shí)運(yùn)行狀態(tài)的操作方法

    本文詳細(xì)介紹了如何通過(guò)Prometheus監(jiān)控Redis的運(yùn)行狀態(tài),包括安裝配置Redis、Redis Exporter以及Prometheus,配置Prometheus監(jiān)控Redis指標(biāo),以及常見(jiàn)的Redis指標(biāo)和告警規(guī)則,需要的朋友可以參考下
    2025-02-02
  • Redis分布式鎖之紅鎖的實(shí)現(xiàn)

    Redis分布式鎖之紅鎖的實(shí)現(xiàn)

    本文主要介紹了Redis分布式鎖之紅鎖的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-08-08
  • 爬蟲(chóng)技術(shù)之分布式爬蟲(chóng)架構(gòu)的講解

    爬蟲(chóng)技術(shù)之分布式爬蟲(chóng)架構(gòu)的講解

    今天小編就為大家分享一篇關(guān)于爬蟲(chóng)技術(shù)之分布式爬蟲(chóng)架構(gòu)的講解,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧
    2019-01-01

最新評(píng)論

河北区| 仁寿县| 陆川县| 罗田县| 茶陵县| 十堰市| 安化县| 山阴县| 搜索| 绵竹市| 武夷山市| 静海县| 丹凤县| 陕西省| 泽库县| 涡阳县| 江达县| 鄂伦春自治旗| 同心县| 来凤县| 梅河口市| 化隆| 梨树县| 梓潼县| 金寨县| 横峰县| 视频| 荃湾区| 松江区| 锡林浩特市| 阿拉尔市| 柞水县| 连平县| 呼图壁县| 师宗县| 英山县| 新余市| 克什克腾旗| 清徐县| 临武县| 镇安县|