sql >> データベース >  >> NoSQL >> Redis

Redisですべてのキーを取得する方法

    • ほとんどの(すべてではない)オブジェクトはキーを使用します
      • 名前空間の使用
    • 既存のすべてのキーを取得する

    他の非リレーショナルデータベースエンジンと同様に、Redisがデータ構造と関連付けを処理する方法に頭を悩ませることは難しい場合があります。これは、Redisを、データを格納するための複数の行と列をそれぞれが含む、隔離されたテーブルを備えた従来のリレーショナルデータベースと比較した場合に特に当てはまります。

    Redisは非リレーショナルであるため、システム内のすべてが基本的な key / valueで構成されます。 最も単純なレベルのペア。特に開発中は、データベースにすでに存在するすべてのものを追跡するのが難しい場合があるため、この簡単なチュートリアルでは、すべてのキーを取得する方法について説明します。 いくつかの簡単なコマンドを使用してRedisデータベースから。

    ほとんどの(すべてではない)オブジェクトはキーを使用します

    Redisを使用したデータストレージの大部分では、データは単純な<​​code> key / valueに保存されます ペア。これは、 redis-cliで最もよく示されます。 (コマンドラインインターフェイス) GETを使用 およびSET コマンド。

    たとえば、に関する情報を保存したい場合があります。 、 titleなど およびauthor 私たちのお気に入りのいくつかの。

    > SET title "The Hobbit"
    OK
    > SET author "J.R.R. Tolkien"
    OK
    

    title およびauthor キーです 設定し、実際の文字列値は後で指定しました。したがって、 GETでそれらを表示できます 、そのように:

    > GET title
    "The Hobbit"
    > GET author
    "J.R.R. Tolkien"
    
    名前空間の使用

    それはすべてうまくいっていますが、どうすれば別の本を追加できますか?同じtitleを再利用することはできません およびauthor キーを押すか、既存のデータを上書きします。代わりに、を使用して名前空間構文を使用できます。 区切り文字と各titleの付与 またはauthor 一意の数値のkeyを入力します :

    > SET title:1 "The Hobbit"
    OK
    > SET author:1 "J.R.R. Tolkien"
    OK
    > SET title:2 "The Silmarillion"
    OK
    > SET author:2 "The Silmarillion"
    OK
    

    現在、 GETを使用しています 一意の数値のkeyを追加する必要があります 同様に:

    > GET title:1
    "The Hobbit"
    > GET title:2
    "The Silmarillion"
    
    既存のすべてのキーを取得する

    結局のところ、すべての SET 上記で発行したコマンドは、新しい一意の keyを作成しました Redisデータベース内。現在のすべてのキーのリストを取得するには 存在する場合は、 KEYSを使用するだけです。 コマンド:

    > KEYS *
    1) "title:1"
    2) "title:2"
    3) "title"
    4) "author:2"
    5) "author"
    6) "author:1"
    

    KEYSをフォローする アスタリスク付き( * )–ワイルドカード検索として機能します–Redisにシステム内のすべてのキーを取得するように依頼しています。したがって、2つの元の titleだけが表示されるわけではありません。 およびauthor キーだけでなく、それに続く4つの列挙バージョンも同様です。

    KEYSに続く構文 キー内の特定の単語やフレーズ、または完全一致を検索するために使用できます。ここでは、テキスト'title'を含むすべてのキーが必要です。 :

    > KEYS *title*
    1) "title:1"
    2) "title:2"
    3) "title"
    

    注意:公式ドキュメントに記載されているように、 KEYSの使用は避けることをお勧めします 非常に大規模なデータベースでコマンドを実行しますが、特に実稼働環境での使用は避けてください。 KEYS以降 システム内のすべてのキーを返す可能性があります。これは、パフォーマンスに劇的な悪影響を与える可能性があります。


    1. MongoDBのPerconaサーバーの監視-主要な指標

    2. FUSEファイルシステムでLinuxVFSキャッシュを使用することは可能ですか?

    3. FindByIndexNameSessionRepositoryのBeanを作成する方法

    4. Heroku:RQを使用したPythonのバックグラウンドタスク