この記事では、特定のプレフィックスを取得するための Redis の主要なスクリプトに関する関連情報を、サンプル コードを通じて詳細に紹介します。以下で説明しますので、ぜひ一緒に学んでください。
1. 背景
日常のメンテナンスでは、多くのリクエストがある Redis では、キー * が直接ブロックの原因となります。
増分反復にはスキャンを使用し、パイプラインを使用してクエリを使用してインタラクションを減らし、効率を向上させることができます。
2. スキャンコマンドの長所と短所
scan 0 1) "655" 2) 1) "test1" 2) "test2"戻り値は配列で、1つは次のサイクルのcursorId、もう1つは要素配列です。 SCAN コマンドは、毎回返される値が順序どおりであることを保証しません。また、同じキーが区別なく複数回返される場合があるため、アプリケーションの処理が必要になります。 さらに、SCANコマンドではCOUNTを指定できます。デフォルトは10です。ただし、これを指定することでどれだけのアイテムが返されるかということを意味するものではありません。これは単なる注意事項であり、それほど多くのアイテムが返されるという保証はありません。
利点:
返されるデータは重複する可能性があり、アプリケーション層は Python スクリプトの実装
スクリプトの内容:
#!/usr/bin/env python # -*- coding: UTF-8 -*- #作用:统计某个前缀key的个数,并将其输入到文件 #使用方法: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] #每次匹配数量 count = sys.argv[2] #print match #print count #总数量 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 的数量为:%d " % (match,total)
Redis を使用した php キャッシュ インスタンス
以上がRedis は特定のプレフィックスのキー スクリプト インスタンスを取得しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。