欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

1.背景

在平時(shí)的維護(hù)中,經(jīng)常會(huì)遇到要統(tǒng)計(jì)某個(gè)前綴的key有多少,在請(qǐng)求比較多的redis中,keys * 會(huì)直接導(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)用只會(huì)返回一小部分的元素。所以不會(huì)有KEYS命令的坑。

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

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

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

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

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

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

缺點(diǎn):

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

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

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

腳本內(nèi)容:

#!/usr/bin/env python
# -*- coding: UTF-8 -*- 
#作用:統(tǒng)計(jì)某個(gè)前綴key的個(gè)數(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) 
#掃描匹配值,通過(guò)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é)

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

相關(guān)文章

  • redis 替代php文件存儲(chǔ)session的實(shí)例

    redis 替代php文件存儲(chǔ)session的實(shí)例

    這篇文章主要介紹了redis 替代php文件存儲(chǔ)session的實(shí)例的相關(guān)資料,希望通過(guò)本文能幫助到大家,讓大家掌握這樣的方法,需要的朋友可以參考下
    2017-10-10
  • Spark刪除redis千萬(wàn)級(jí)別set集合數(shù)據(jù)實(shí)現(xiàn)分析

    Spark刪除redis千萬(wàn)級(jí)別set集合數(shù)據(jù)實(shí)現(xiàn)分析

    這篇文章主要為大家介紹了Spark刪除redis千萬(wàn)級(jí)別set集合數(shù)據(jù)實(shí)現(xiàn)過(guò)程分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-06-06
  • 推薦幾款 Redis 可視化工具(太厲害了)

    推薦幾款 Redis 可視化工具(太厲害了)

    這篇文章主要介紹了推薦幾款 Redis 可視化工具,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2021-04-04
  • redis如何設(shè)置database個(gè)數(shù)

    redis如何設(shè)置database個(gè)數(shù)

    這篇文章主要介紹了redis如何設(shè)置database個(gè)數(shù)的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-09-09
  • 在redis中存儲(chǔ)ndarray的示例代碼

    在redis中存儲(chǔ)ndarray的示例代碼

    在Redis中存儲(chǔ)NumPy數(shù)組(ndarray)通常需要將數(shù)組轉(zhuǎn)換為二進(jìn)制格式,然后將其存儲(chǔ)為字符串,這篇文章給大家介紹了在redis中存儲(chǔ)ndarray的示例代碼,感興趣的朋友一起看看吧
    2024-02-02
  • Redis中List類型的常用命令

    Redis中List類型的常用命令

    本文主要介紹了Redis中List類型的常用命令,包含12種常用命令,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-06-06
  • redis中如何使用lua腳本讓你的靈活性提高5個(gè)逼格詳解

    redis中如何使用lua腳本讓你的靈活性提高5個(gè)逼格詳解

    這篇文章主要給大家介紹了關(guān)于redis中如何使用lua腳本讓你的靈活性提高5個(gè)逼格的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2018-10-10
  • redission分布式鎖防止重復(fù)初始化問(wèn)題

    redission分布式鎖防止重復(fù)初始化問(wèn)題

    這篇文章主要介紹了redission分布式鎖防止重復(fù)初始化問(wèn)題,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-11-11
  • Redis鎖完美解決高并發(fā)秒殺問(wèn)題

    Redis鎖完美解決高并發(fā)秒殺問(wèn)題

    本文主要介紹了Redis鎖完美解決高并發(fā)秒殺問(wèn)題,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-09-09
  • Redis動(dòng)態(tài)字符串SDS的實(shí)現(xiàn)

    Redis動(dòng)態(tài)字符串SDS的實(shí)現(xiàn)

    SDS在Redis中是實(shí)現(xiàn)字符串對(duì)象的工具,本文主要介紹了Redis動(dòng)態(tài)字符串SDS的實(shí)現(xiàn),具有一定的參考價(jià)值,感興趣的可以了解一下
    2023-11-11

最新評(píng)論