使用Redis SETNX 命令實現分布式鎖

2021-08-19 06:59:40 字數 726 閱讀 3344

防止多台機器上的 task 在同一時間一起執行,只要執行乙個就可以了

import service.redis.redisfacade;

/** * author: heatdeath

* date: 2018/4/24

* desc: 基於 redis 實現的簡易分布式鎖

*/public

class

distributedlockutil

/*** 使用 redis 的 setnx 命令嘗試獲取鎖

* 如果成功獲取,設定過期時間為 6 min,返回 true

* 如果失敗,返回 false

**@return the boolean

*@throws exception the exception

*/public boolean trylock() throws exception

/*** 釋放分布式鎖,設定 key 的過期時間為 0s

**@throws exception the exception

*/public

void

release() throws exception

}

@service

public

class

countlogsendemailtask

}

詳解使用Redis SETNX 命令實現分布式鎖

使用redis的 setnx 命令可以實現分布式鎖,下文介紹其實現方法。setnx命令簡介 命令格式 setnx key value 將 key 的值設為 value,當且僅當 key 不存在。若給定的 key 已經存在,則 setnx 不做任何動作。setnx 是set if not exists...

使用Redis SETNX 命令實現分布式鎖

使用redis的 setnx 命令可以實現分布式鎖,下文介紹其實現方法。setnx key value 將 key 的值設為 value,當且僅當 key 不存在。若給定的 key 已經存在,則 setnx 不做任何動作。setnx 是set if not exists的簡寫。返回整數,具體為 1,...

使用Redis SETNX 命令實現分布式鎖

使用redis的 setnx 命令可以實現分布式鎖,下文介紹其實現方法。setnx key value 將 key 的值設為 value,當且僅當 key 不存在。若給定的 key 已經存在,則 setnx 不做任何動作。setnx 是set if not exists的簡寫。返回整數,具體為 1,...