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

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

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

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 實(shí)現(xiàn) setnx exptime (擴(kuò)展 redisTemplate.setIfAbsent)

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

1. redisTemplate.setIfAbsent

2. redisTemplate.expire

這樣的不是原子性的 可能在第一步與第二步之間 重新發(fā)布了或者服務(wù)器重啟了 這個(gè)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;
}

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

相關(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,在很多項(xiàng)目中,經(jīng)常在xml配置文件中看到init-method 或者 destroy-method ,因此整理收集下,方便以后參考和學(xué)習(xí),需要的朋友可以參考下
    2023-04-04
  • JVM性能調(diào)優(yōu)實(shí)戰(zhàn):讓你的IntelliJ Idea縱享絲滑

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

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

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

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

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

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

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

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

    Java實(shí)現(xiàn)24點(diǎn)小游戲

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

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

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

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

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

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

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

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

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

最新評論

曲阳县| 永年县| 休宁县| 麟游县| 油尖旺区| 紫云| 九龙县| 濮阳市| 饶河县| 新乐市| 天长市| 海宁市| 连平县| 平乡县| 北安市| 耒阳市| 达孜县| 岗巴县| 张掖市| 府谷县| 垣曲县| 延吉市| 桐乡市| 富川| 三原县| 佛冈县| 乌海市| 乌审旗| 沐川县| 雅江县| 右玉县| 浪卡子县| 东台市| 都安| 常山县| 昭觉县| 泰安市| 苏尼特右旗| 中牟县| 曲阳县| 天津市|