亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

redis怎么獲取所有key

發布時間:2023-04-10 16:56:34 來源:億速云 閱讀:123 作者:iii 欄目:開發技術

這篇文章主要介紹“redis怎么獲取所有key”,在日常操作中,相信很多人在redis怎么獲取所有key問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”redis怎么獲取所有key”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!

keys:全量遍歷鍵,用來列出所有滿足特定正則字符串規則的key,假設redis此時正在生產環境下,使用該命令就會造成隱患,當redis數據量比較大時:

keys會一次性返回所有符合條件的key,所以會造成redis的卡頓。

SCAN是一個基于游標的迭代器,需要基于上一次的游標延續之前的迭代過程。SCAN以0作為游標,開始一次新的迭代,直到命令返回游標0完成一次遍歷。

此命令并不保證每次執行都返回某個給定數量的元素,甚至會返回0個元素,但只要游標不是0,程序都不會認為SCAN命令結束,但是返回的元素數量大概率符合count參數。另外,SCAN支持模糊查詢。

1.keys cmos-cache包

redisCacheService.keys(String pattern);

2.scan方法

public static Set<String> getAllKey(String match,int count){
    //返回集
    Set<String> binKeys = new HashSet<>();
    //封裝scan查詢參數
    ScanParams param = new ScanParams().match(match).count(count);
    //獲取查詢對象
    RedisCacheServiceImpl redisCacheSer = (RedisCacheServiceImpl)RedisCacheService;
    JedisCluster jedisClu = redisCacheSer.getJedisCluster();
//getClueterNodes獲取集群節點,從各個集群中獲取值進行遍歷
    jedisClu.getClusterNodes().values().stream().forEach(pool->{
        boolean done = false;//
        String cur = "0";//游標,以0開始,返回0代表一次結束
        try(Jedis jedisNode = pool.getResource()){
            while(!done){
                ScanResult<String> scanResult = jedisNode.scan(cur,param);
                cur = scanResult.getStringCursor();
                if("0".equals(cur){done=true};
                List<String> result = scanResult.getResult();
                result.foreach(data->{binKeys.add(data)});
            }
        }
    });
    return binKeys;
}

到此,關于“redis怎么獲取所有key”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

郎溪县| 威信县| 元江| 朝阳区| 龙陵县| 利川市| 赣榆县| 绿春县| 泰顺县| 绥江县| 潼关县| 武安市| 蒙山县| 天门市| 麻江县| 顺义区| 景泰县| 温州市| 奉化市| 河曲县| 新巴尔虎右旗| 治县。| 江西省| 化州市| 蓝田县| 石林| 云南省| 永福县| 张家口市| 顺义区| 靖安县| 大同县| 吴川市| 文水县| 阳谷县| 呼伦贝尔市| 双桥区| 澳门| 达拉特旗| 甘德县| 开原市|