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

redis setIfAbsent和setnx的區(qū)別與使用說明

 更新時間:2021年08月04日 14:22:09   作者:chushiyunen  
這篇文章主要介紹了redis setIfAbsent和setnx的區(qū)別與使用,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

redis setIfAbsent和setnx的區(qū)別與使用

如果為空就set值,并返回1

如果存在(不為空)不進(jìn)行操作,并返回0

setIfAbsent 和 setnx 使用范圍

setIfAbsent 是java中的方法

setnx 是 redis命令中的方法

setnx 例子

redis> SETNX testkey "test"
(integer) 1
redis> SETNX testkey "test"
(integer) 0
redis> GET testkey
"test"

setIfAbsent 例子

redis> SETNX testkey "test"
(integer) 1
redis> SETNX testkey "test"
(integer) 0
redis> GET testkey
"test"

RedisTemplate 實現(xiàn) setnx exptime (擴(kuò)展 redisTemplate.setIfAbsent)

之前用 redisTemplate 實現(xiàn)setnx exptime 時 是分兩步的

1. redisTemplate.setIfAbsent

2. redisTemplate.expire

這樣的不是原子性的 可能在第一步與第二步之間 重新發(fā)布了或者服務(wù)器重啟了 這個key就永遠(yuǎn)不會消失了

可以采用以下的方法

public static boolean setIfAbsent(final String key, final Serializable value, final long exptime) {
    Boolean b = (Boolean) redisTemplate.execute(new RedisCallback<Boolean>() {
        @Override
        public Boolean doInRedis(RedisConnection connection) throws DataAccessException {
            RedisSerializer valueSerializer = redisTemplate.getValueSerializer();
            RedisSerializer keySerializer = redisTemplate.getKeySerializer();
            Object obj = connection.execute("set", keySerializer.serialize(key), 
                                valueSerializer.serialize(value),
                                SafeEncoder.encode("NX"), 
                                SafeEncoder.encode("EX"), 
                                Protocol.toByteArray(exptime));
            return obj != null;
        }
    });
    return b;
}

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • spring?bean標(biāo)簽中的init-method和destroy-method詳解

    spring?bean標(biāo)簽中的init-method和destroy-method詳解

    這篇文章主要介紹了spring?bean標(biāo)簽中的init-method和destroy-method,在很多項目中,經(jīng)常在xml配置文件中看到init-method 或者 destroy-method ,因此整理收集下,方便以后參考和學(xué)習(xí),需要的朋友可以參考下
    2023-04-04
  • JVM性能調(diào)優(yōu)實戰(zhàn):讓你的IntelliJ Idea縱享絲滑

    JVM性能調(diào)優(yōu)實戰(zhàn):讓你的IntelliJ Idea縱享絲滑

    這篇文章主要介紹了JVM性能調(diào)優(yōu)實戰(zhàn):讓你的IntelliJ Idea縱享絲滑的相關(guān)資料,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-01-01
  • java實現(xiàn)檢測Linux網(wǎng)絡(luò)狀態(tài)(附源碼)

    java實現(xiàn)檢測Linux網(wǎng)絡(luò)狀態(tài)(附源碼)

    實時監(jiān)控服務(wù)器網(wǎng)絡(luò)狀態(tài)是保證業(yè)務(wù)高可用性和可靠性的重要環(huán)節(jié),本文主要介紹了如何設(shè)計并實現(xiàn)一個高性能,可擴(kuò)展,支持事件訂閱與周期采樣的Linux?網(wǎng)絡(luò)狀態(tài)檢測工具,需要的可以了解下
    2025-06-06
  • Spring如何解決接口多實現(xiàn)類的依賴注入沖突

    Spring如何解決接口多實現(xiàn)類的依賴注入沖突

    在 Spring 中,當(dāng)一個接口有多個實現(xiàn)類時,依賴注入(DI)的歧義性問題是一個常見挑戰(zhàn),本文為大家介紹了如何根據(jù)場景選擇最優(yōu)方案,希望對大家有所幫助
    2025-08-08
  • 詳細(xì)講解Java輸入語句的寫法

    詳細(xì)講解Java輸入語句的寫法

    作為初步進(jìn)入java開發(fā)學(xué)習(xí)的小白來說,學(xué)習(xí)java語言一開始的時候得一步步的學(xué)習(xí),比如說java輸入語句應(yīng)該這么去實現(xiàn)呢,這篇文章主要給大家介紹了關(guān)于Java輸入語句的相關(guān)資料,需要的朋友可以參考下
    2024-03-03
  • Java實現(xiàn)24點小游戲

    Java實現(xiàn)24點小游戲

    這篇文章主要為大家詳細(xì)介紹了Java實現(xiàn)24點小游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-01-01
  • 使用Java打印出所有的水仙花數(shù)的解決方法

    使用Java打印出所有的水仙花數(shù)的解決方法

    水仙花數(shù)也被稱為超完全數(shù)字不變數(shù)、自戀數(shù)、自冪數(shù),是指一個?n?位數(shù)?(n≥3),它的每個位上的數(shù)字的?n?次冪之和等于它本身,本文將通過?Java?語言來實現(xiàn)一個簡單的程序,用于找出并打印所有三位數(shù)中的水仙花數(shù),需要的朋友可以參考下
    2026-01-01
  • 淺析Java?BigDecimal為什么可以不丟失精度

    淺析Java?BigDecimal為什么可以不丟失精度

    在金融領(lǐng)域,為了保證數(shù)據(jù)的精度,往往會使用BigDecimal,所以這篇文章主要來和大家探討下為什么BigDecimal可以保證精度不丟失,感興趣的可以了解下
    2024-03-03
  • 淺談SpringBoot如何正確攔截thymeleaf異常

    淺談SpringBoot如何正確攔截thymeleaf異常

    Thymeleaf是一個模板引擎工具,主要用于頁面渲染操作,本文主要介紹了淺談SpringBoot如何正確攔截thymeleaf異常,具有一定的參考價值,感興趣的可以了解一下
    2023-09-09
  • SpringBoot配置SSL同時支持http和https訪問實現(xiàn)

    SpringBoot配置SSL同時支持http和https訪問實現(xiàn)

    本文主要介紹了SpringBoot配置SSL同時支持http和https訪問實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-07-07

最新評論

司法| 东源县| 奈曼旗| 马鞍山市| 周宁县| 东海县| 苏尼特左旗| 来凤县| 吴川市| 德州市| 竹北市| 海南省| 襄城县| 通河县| 察雅县| 荃湾区| 临清市| 广丰县| 襄垣县| 大英县| 文安县| 古浪县| 庐江县| 安宁市| 巢湖市| 西乌珠穆沁旗| 井冈山市| 承德县| 鹤壁市| 海晏县| 龙游县| 崇左市| 武山县| 金山区| 卫辉市| 萨迦县| 依兰县| 双峰县| 昌宁县| 中卫市| 巍山|