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

Redis獲取某個前綴的key腳本實(shí)例

 更新時間:2018年04月18日 11:18:46   作者:linda玲  
這篇文章主要給大家介紹了關(guān)于Redis獲取某個前綴的key腳本的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用Redis具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。

1.背景

在平時的維護(hù)中,經(jīng)常會遇到要統(tǒng)計(jì)某個前綴的key有多少,在請求比較多的redis中,keys * 會直接導(dǎo)致阻塞。
可以采用scan的方式進(jìn)行增量迭代,查詢使用pipeline減少交互,提高效率。

2.scan命令的優(yōu)缺點(diǎn)

SCAN命令的有SCAN,SSCAN,HSCAN,ZSCAN。

SCAN的話就是遍歷所有的keys

其他的SCAN命令的話是SCAN選中的集合。

SCAN命令是增量的循環(huán),每次調(diào)用只會返回一小部分的元素。所以不會有KEYS命令的坑。

SCAN命令返回的是一個游標(biāo),從0開始遍歷,到0結(jié)束遍歷。

scan 0
1) "655"
2) 1) "test1"
  2) "test2"

返回值一個array,一個是下次循環(huán)的cursorId,一個是元素?cái)?shù)組。SCAN命令不能保證每次返回的值都是有序的,另外同一個key有可能返回多次,不做區(qū)分,需要應(yīng)用程序去處理。

另外SCAN命令可以指定COUNT,默認(rèn)是10。但是這個并不是指定多少,就能返回多少,這只是一個提示,并不能保證一定返回這么多條。

優(yōu)點(diǎn):

  • 提供鍵空間的遍歷操作,支持游標(biāo),復(fù)雜度O(1), 整體遍歷一遍只需要O(N);
  • 提供結(jié)果模式匹配;
  • 支持一次返回的數(shù)據(jù)條數(shù)設(shè)置,但僅僅是個hints,有時候返回的會多;
  • 弱狀態(tài),所有狀態(tài)只需要客戶端需要維護(hù)一個游標(biāo);

缺點(diǎn):

  • 無法提供完整的快照遍歷,也就是中間如果有數(shù)據(jù)修改,可能有些涉及改動的數(shù)據(jù)遍歷不到;
  • 每次返回的數(shù)據(jù)條數(shù)不一定,極度依賴內(nèi)部實(shí)現(xiàn);
  • 返回的數(shù)據(jù)可能有重復(fù),應(yīng)用層必須能夠處理重入邏輯;

3. python腳本的實(shí)現(xiàn)

python中有一個封裝的函數(shù)scan_iter--查看所有元素--迭代器

腳本內(nèi)容:

#!/usr/bin/env python
# -*- coding: UTF-8 -*- 
#作用:統(tǒng)計(jì)某個前綴key的個數(shù),并將其輸入到文件
#使用方法:python scan_redis.py apus* 100
__author__ = "lcl" 
import sys
import redis 
import os 
pool=redis.ConnectionPool(host='192.168.225.128',port=6379,db=0) 
r = redis.StrictRedis(connection_pool=pool) 
#掃描匹配值,通過sys.argv傳參
match = sys.argv[1]
#每次匹配數(shù)量
count = sys.argv[2]
#print match
#print count
#總數(shù)量
total = 0
#掃描到的key輸出到文件
path = os.getcwd()
#掃描到的key輸出的文件
txt = path+"/keys.txt"
f = open(txt,"w")
for key in r.scan_iter(match = match,count = count):
# f.write("%s %s" % (key,"\n"))
 f.write(key+"\n")
 total = total+1
f.close
print "匹配: %s 的數(shù)量為:%d " % (match,total)

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。

相關(guān)文章

  • redis通過位圖法記錄在線用戶的狀態(tài)詳解

    redis通過位圖法記錄在線用戶的狀態(tài)詳解

    這篇文章主要給大家介紹了關(guān)于redis如何通過位圖法記錄在線用戶的狀態(tài)的相關(guān)資料,文中先對位圖進(jìn)行了一個簡單的介紹,而后通過示例代碼將實(shí)現(xiàn)的方法介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2018-11-11
  • redis的2種持久化方案深入講解

    redis的2種持久化方案深入講解

    這篇文章主要給大家介紹了關(guān)于redis的2種持久化方案的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用redis具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-05-05
  • redis主從復(fù)制的原理及實(shí)現(xiàn)

    redis主從復(fù)制的原理及實(shí)現(xiàn)

    Redis主從復(fù)制是一種數(shù)據(jù)同步機(jī)制,它通過將一個Redis實(shí)例的數(shù)據(jù)復(fù)制到其他Redis,本文主要介紹了redis主從復(fù)制的原理及實(shí)現(xiàn),具有一定的參考價值,感興趣的可以了解一下
    2023-08-08
  • 一篇文章揭秘Redis的磁盤持久化機(jī)制

    一篇文章揭秘Redis的磁盤持久化機(jī)制

    這篇文章主要給大家介紹了如何通過一篇文章揭秘Redis的磁盤持久化機(jī)制的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用Redis具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-09-09
  • 將MongoDB作為Redis式的內(nèi)存數(shù)據(jù)庫的使用方法

    將MongoDB作為Redis式的內(nèi)存數(shù)據(jù)庫的使用方法

    這篇文章主要介紹了將MongoDB作為Redis式的內(nèi)存數(shù)據(jù)庫的使用方法,原理其實(shí)只是將內(nèi)存虛擬作為磁盤,需要的朋友可以參考下
    2015-06-06
  • 分割超大Redis數(shù)據(jù)庫例子

    分割超大Redis數(shù)據(jù)庫例子

    這篇文章主要介紹了分割超大Redis數(shù)據(jù)庫例子,本文講解了分割的需求、分割的思路及分割實(shí)例,需要的朋友可以參考下
    2015-03-03
  • Redis+IDEA實(shí)現(xiàn)單機(jī)鎖和分布式鎖的過程

    Redis+IDEA實(shí)現(xiàn)單機(jī)鎖和分布式鎖的過程

    這篇文章主要介紹了Redis+IDEA實(shí)現(xiàn)單機(jī)鎖和分布式鎖的過程,本文通過示例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-07-07
  • 在redisCluster中模糊獲取key方式

    在redisCluster中模糊獲取key方式

    這篇文章主要介紹了在redisCluster中模糊獲取key方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-07-07
  • redis的bigkey掃描腳本深入介紹

    redis的bigkey掃描腳本深入介紹

    這篇文章主要給大家介紹了關(guān)于redis的bigkey掃描腳本的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2018-07-07
  • Redis的字符串是如何實(shí)現(xiàn)的

    Redis的字符串是如何實(shí)現(xiàn)的

    本文主要介紹了Redis的字符串是如何實(shí)現(xiàn)的,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-10-10

最新評論

中超| 通化市| 绿春县| 安丘市| 福泉市| 寿阳县| 纳雍县| 临夏县| 靖江市| 内乡县| 濮阳县| 泸水县| 彰化市| 鹿泉市| 抚顺县| 晋中市| 清水县| 台北市| 阿坝县| 勐海县| 岳池县| 元阳县| 汨罗市| 内乡县| 交城县| 牙克石市| 玉门市| 田阳县| 固始县| 盖州市| 潼关县| 汉川市| 会昌县| 迁安市| 驻马店市| 湖州市| 大港区| 翁牛特旗| 湟中县| 电白县| 朝阳县|