Redis中setnx的使用


概念

setnx是「SET if Not eXists」的縮寫,只有不存在的時候才設置,可以利用它來實現鎖的效果。
SETNX key value
若給定的 key 已經存在,則 SETNX 不做任何動作。

SET命令

SET命令可用選項的基本語法
SET KEY VALUE [EX seconds] [PX milliseconds] [NX|XX]

EX

到期時間(以秒為單位)

PX

到期時間(以毫秒為單位)

NX

僅在鍵不存在時設置鍵

XX

只有在鍵已存在時才設置

示例

SET mykey “redis” EX 60 NX
在鍵“mykey”不存在時,設置鍵的值為“redis”,到期時間為60秒。

使用redisTemplate操作SetNx

    @Override
    public boolean setNx(String key,String value, long time) {
        try {
            RedisCallback<String> callback = (connection) -> {
                JedisCommands commands = (JedisCommands) connection.getNativeConnection();
                return commands.set(key, value, "NX", "PX", time);
            };
            String result = redisTemplate.execute(callback);

            return !StringUtils.isEmpty(result);
        } catch (Exception e) {
            logger.error("set redis occured an exception", e);
        }
        return false;
    }

參考:
https://blog.csdn.net/u010520146/article/details/84847684?utm_medium=distribute.pc_relevant.none-task-blog-2


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM