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

Redis通過(guò)scan查找不過(guò)期的 key(方法詳解)

 更新時(shí)間:2021年08月18日 15:28:51   作者:__Yoon  
SCAN 命令是一個(gè)基于游標(biāo)的迭代器,每次被調(diào)用之后, 都會(huì)向用戶返回一個(gè)新的游標(biāo), 用戶在下次迭代時(shí)需要使用這個(gè)新游標(biāo)作為 SCAN 命令的游標(biāo)參數(shù), 以此來(lái)延續(xù)之前的迭代過(guò)程,對(duì)Redis scan 查找 key相關(guān)知識(shí)感興趣的朋友一起看看吧

Redis Scan 命令用于迭代數(shù)據(jù)庫(kù)中的數(shù)據(jù)庫(kù)鍵。

SCAN 返回一個(gè)包含兩個(gè)元素的數(shù)組, 第一個(gè)元素是用于進(jìn)行下一次迭代的新游標(biāo), 而第二個(gè)元素則是一個(gè)數(shù)組, 這個(gè)數(shù)組中包含了所有被迭代的元素。如果新游標(biāo)返回 0 表示迭代已結(jié)束。

相關(guān)命令:

SSCAN 命令用于迭代集合鍵中的元素。
HSCAN 命令用于迭代哈希鍵中的鍵值對(duì)。
ZSCAN 命令用于迭代有序集合中的元素(包括元素成員和元素分值)。

# SCAN 命令是一個(gè)基于游標(biāo)的迭代器(cursor based iterator):SCAN 命令每次被調(diào)用之后,都會(huì)向用戶返回一個(gè)新的游標(biāo),用戶在下次迭代時(shí)需要使用這個(gè)新游標(biāo)作為 SCAN 命令的游標(biāo)參數(shù),以此來(lái)延續(xù)之前的迭代過(guò)程。
# 注意:當(dāng) SCAN 命令的游標(biāo)參數(shù)被設(shè)置為 0 時(shí),服務(wù)器將開(kāi)始一次新的迭代,而當(dāng)服務(wù)器向用戶返回值為 0 的游標(biāo)時(shí),表示迭代已結(jié)束!

# vim redis_no_ttl_key.sh

#!/bin/bash
# Redis 通過(guò) scan 找出不過(guò)期的 key
# SCAN 命令是一個(gè)基于游標(biāo)的迭代器(cursor based iterator):SCAN 命令每次被調(diào)用之后,都會(huì)向用戶返回一個(gè)新的游標(biāo),用戶在下次迭代時(shí)需要使用這個(gè)新游標(biāo)作為 SCAN 命令的游標(biāo)參數(shù),以此來(lái)延續(xù)之前的迭代過(guò)程。
# 注意:當(dāng) SCAN 命令的游標(biāo)參數(shù)被設(shè)置為 0 時(shí),服務(wù)器將開(kāi)始一次新的迭代,而當(dāng)服務(wù)器向用戶返回值為 0 的游標(biāo)時(shí),表示迭代已結(jié)束!

db_ip=10.100.41.148       # redis 連接IP
db_port=6379              # redis 端口
password='IootCdgN05srE'  # redis 密碼
cursor=0                  # 第一次游標(biāo)
cnt=100                   # 每次迭代的數(shù)量
new_cursor=0              # 下一次游標(biāo)

redis-cli -c -h $db_ip -p $db_port -a $password scan $cursor count $cnt > scan_tmp_result
new_cursor=`sed -n '1p' scan_tmp_result`     # 獲取下一次游標(biāo)
sed -n '2,$p' scan_tmp_result > scan_result  # 獲取 key
cat scan_result |while read line             # 循環(huán)遍歷所有 key
do
    ttl_result=`redis-cli -c -h $db_ip -p $db_port -a $password ttl $line`  # 獲取key過(guò)期時(shí)間
    if [[ $ttl_result == -1 ]];then
    #if [ $ttl_result -eq -1 ];then          # 判斷過(guò)期時(shí)間,-1 是不過(guò)期
        echo $line >> no_ttl.log             # 追加到指定日志
    fi
done

while [ $cursor -ne $new_cursor ]            # 若游標(biāo)不為0,則證明沒(méi)有迭代完所有的key,繼續(xù)執(zhí)行,直至游標(biāo)為0
do
    redis-cli -c -h $db_ip -p $db_port -a $password scan $new_cursor count $cnt > scan_tmp_result
    new_cursor=`sed -n '1p' scan_tmp_result`
    sed -n '2,$p' scan_tmp_result > scan_result
    cat scan_result |while read line
    do
        ttl_result=`redis-cli -c -h $db_ip -p $db_port -a $password ttl $line`
        if [[ $ttl_result == -1 ]];then
        #if [ $ttl_result -eq -1 ];then
            echo $line >> no_ttl.log
        fi
    done
done
rm -rf scan_tmp_result
rm -rf scan_result

到此這篇關(guān)于Redis通過(guò)scan查找不過(guò)期的 key的文章就介紹到這了,更多相關(guān)Redis scan 查找 key內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 如何解決Redis緩存穿透(緩存空對(duì)象、布隆過(guò)濾器)

    如何解決Redis緩存穿透(緩存空對(duì)象、布隆過(guò)濾器)

    緩存穿透是一個(gè)常見(jiàn)的問(wèn)題,它發(fā)生當(dāng)請(qǐng)求的數(shù)據(jù)既不在緩存中也不在數(shù)據(jù)庫(kù)中,文章通過(guò)一個(gè)查詢商品店鋪的案例,展示了如何結(jié)合這兩種方法來(lái)避免緩存穿透,首先利用布隆過(guò)濾器過(guò)濾掉不存在的id,對(duì)于誤判的情況,則采用緩存空對(duì)象的策略進(jìn)行補(bǔ)救
    2024-11-11
  • Redis如何存儲(chǔ)對(duì)象與集合示例詳解

    Redis如何存儲(chǔ)對(duì)象與集合示例詳解

    redis是一個(gè)key-value存儲(chǔ)系統(tǒng)。和Memcached類似,它支持存儲(chǔ)的value類型相對(duì)更多,包括string(字符串)、list(鏈表)、set(集合)、 zset(sorted set --有序集合)和hash(哈希類型)本文介紹了關(guān)于Redis是如何存儲(chǔ)對(duì)象與集合的相關(guān)資料,需要的朋友可以參考下
    2018-05-05
  • Redis分布式鎖的7種實(shí)現(xiàn)

    Redis分布式鎖的7種實(shí)現(xiàn)

    這篇文章主要介紹了Redis分布式鎖的實(shí)現(xiàn)
    2022-04-04
  • Redis簡(jiǎn)單動(dòng)態(tài)字符串SDS的實(shí)現(xiàn)示例

    Redis簡(jiǎn)單動(dòng)態(tài)字符串SDS的實(shí)現(xiàn)示例

    Redis沒(méi)有直接復(fù)用C語(yǔ)言的字符串,而是新建了SDS,本文主要介紹了Redis簡(jiǎn)單動(dòng)態(tài)字符串SDS的實(shí)現(xiàn)示例,具有一定的參考價(jià)值,感興趣的可以了解一下
    2023-08-08
  • Redis如何部署哨兵

    Redis如何部署哨兵

    本文主要介紹了Redis如何部署哨兵,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-07-07
  • 帶你輕松掌握Redis分布式鎖

    帶你輕松掌握Redis分布式鎖

    這篇文章主要介紹了帶你輕松掌握Redis分布式鎖,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-11-11
  • redis實(shí)現(xiàn)分布式的方法總結(jié)

    redis實(shí)現(xiàn)分布式的方法總結(jié)

    在本篇文章中小編給大家整理了關(guān)于redis分布式怎么做的具體內(nèi)容以及知識(shí)點(diǎn)總結(jié),有興趣的朋友們參考下。
    2019-06-06
  • 高并發(fā)場(chǎng)景分析之redis+lua防重校驗(yàn)

    高并發(fā)場(chǎng)景分析之redis+lua防重校驗(yàn)

    這篇文章主要介紹了高并發(fā)場(chǎng)景分析之redis+lua防重校驗(yàn),本文通過(guò)示例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-07-07
  • 配置Redis序列化方式不生效問(wèn)題及解決

    配置Redis序列化方式不生效問(wèn)題及解決

    這篇文章主要介紹了配置Redis序列化方式不生效問(wèn)題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-12-12
  • 詳解如何在YAML文件中配置Redis

    詳解如何在YAML文件中配置Redis

    在現(xiàn)代軟件開(kāi)發(fā)中,配置文件是非常重要的一部分,其中,YAML(YAML Ain't Markup Language)是一種常用的配置文件格式,具有可讀性強(qiáng)、易于理解和編寫(xiě)的特點(diǎn),在本篇文章中,我們將探討如何在YAML文件中配置Redis,需要的朋友可以參考下
    2024-09-09

最新評(píng)論

宜都市| 崇仁县| 剑河县| 美姑县| 湛江市| 合阳县| 汶上县| 南涧| 蒙阴县| 凤山市| 禹城市| 封开县| 隆德县| 乡宁县| 普陀区| 南靖县| 昌乐县| 建瓯市| 岳普湖县| 河间市| 临城县| 锦屏县| 白水县| 泗水县| 五峰| 普兰县| 奎屯市| 格尔木市| 永善县| 茂名市| 漾濞| 清新县| 平乡县| 灵宝市| 天柱县| 红桥区| 德庆县| 顺义区| 临桂县| 盐城市| 阳朔县|