亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

使用redisTemplate的scan方式刪除批量key問題

 更新時間:2023年12月20日 08:52:11   作者:bat在等我  
這篇文章主要介紹了使用redisTemplate的scan方式刪除批量key問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教

redisTemplate的scan方式刪除批量key

	/**
     * 刪除指定前綴的一系列key
     *
     * @param pattern 匹配keys的規(guī)則
     */
    public void deleteKeysByScan(String pattern) {
        long start = System.currentTimeMillis();
        LOGGER.error("清理{}類外呼記錄緩存的定時任務開始執(zhí)行", pattern);
        String param = pattern + "*";
        Set<String> keys = this.getValuesForStringByScan(param);
        redisTemplate.delete(keys);
        LOGGER.error("清理{}類外呼記錄緩存的定時任務執(zhí)行結束,耗時:{}", pattern, (System.currentTimeMillis() - start));
    }

    /**
     * 獲取匹配的所有key,使用scan避免阻塞
     *
     * @param patten 匹配keys的規(guī)則
     * @return 返回獲取到的keys
     */
    public Set<String> getValuesForStringByScan(String patten) {
        return redisTemplate.execute(connect -> {
            Set<String> binaryKeys = new HashSet<>();
            Cursor<byte[]> cursor = connect.scan(new ScanOptions.ScanOptionsBuilder().match(patten).count(200000).build());
            while (cursor.hasNext() && binaryKeys.size() < 200000) {
                binaryKeys.add(new String(cursor.next()));
            }
            return binaryKeys;
        }, true);
    }

Java使用RedisTemplate模糊刪除key

Redis模糊匹配批量刪除操作,使用RedisTemplate操作:

    public void deleteByPrex(String prex) {
        Set<String> keys = redisTemplate.keys(prex);
        if (CollectionUtils.isNotEmpty(keys)) {
            redisTemplate.delete(keys);
        }
    }

prex為迷糊匹配的key,如cache:user:*

這里需要判斷keys是否存在,如果一個都匹配不到會報錯:

ERR wrong number of arguments for 'del' command

當然,如果要直接在linux里面操作的話,在命令行執(zhí)行以下命令:

redis-cli keys "keys" | xargs redis-cli del

keys 是要匹配的規(guī)則,和上面的prex一樣。

總結

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

相關文章

  • Java線程之間數據傳遞的實現(xiàn)示例(4種)

    Java線程之間數據傳遞的實現(xiàn)示例(4種)

    我們經常會遇到父子線程數據傳遞(非調用參數)的場景,本文主要介紹了Java線程之間數據傳遞的實現(xiàn)示例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-08-08
  • 一文解決pom.xml報錯Dependency "xxx" not found的問題

    一文解決pom.xml報錯Dependency "xxx" not f

    我們在使用maven進行jar包管理時有時會遇到pom.xml中報錯Dependency “XXX” not found,所以在本文中將給大家介紹一下pom.xml報錯Dependency "xxx" not found的解決方案,需要的朋友可以參考下
    2024-01-01
  • Java 異步回調機制實例分析

    Java 異步回調機制實例分析

    這篇文章主要介紹了Java 異步回調機制實例解析的相關資料,需要的朋友可以參考下
    2017-02-02
  • Java StackOverflowError詳解

    Java StackOverflowError詳解

    這篇文章主要介紹了Java StackOverflowError詳解,本篇文章通過簡要的案例,講解了該項技術的了解與使用,以下就是詳細內容,需要的朋友可以參考下
    2021-08-08
  • SpringBoot實現(xiàn)掃碼登錄的示例代碼

    SpringBoot實現(xiàn)掃碼登錄的示例代碼

    本文主要介紹了SpringBoot實現(xiàn)掃碼登錄的示例代碼,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • Java自定義線程池的實現(xiàn)示例

    Java自定義線程池的實現(xiàn)示例

    本文主要介紹了Java自定義線程池的實現(xiàn)示例,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-02-02
  • 淺析Java中的 new 關鍵字

    淺析Java中的 new 關鍵字

    java中的new關鍵字是實例化對象,接下來本文通過一個案例給大家講解Java中的 new 關鍵字,感興趣的朋友可以參考下
    2016-08-08
  • Java實現(xiàn)指定線程執(zhí)行順序的三種方式示例

    Java實現(xiàn)指定線程執(zhí)行順序的三種方式示例

    這篇文章主要介紹了Java實現(xiàn)指定線程執(zhí)行順序的三種方式,包括通過共享對象鎖加上可見變量,通過主線程Join()以及通過線程執(zhí)行時Join()等三種實現(xiàn)方法,需要的朋友可以參考下
    2019-01-01
  • Java面向對象之作用域詳細解讀

    Java面向對象之作用域詳細解讀

    這篇文章主要介紹了Java面向對象之作用域詳細解讀,在java編程中,主要的變量就是屬性和局部變量,局部變量一般是指在成員方法中定義的變量,局部變量也就是除了屬性之外的其他變量,作用域為定義他的代碼塊中,需要的朋友可以參考下
    2024-01-01
  • 基于jstree使用JSON數據組裝成樹

    基于jstree使用JSON數據組裝成樹

    這篇文章主要為大家詳細介紹了基于jstree使用JSON數據組裝成樹,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-08-08

最新評論