検索

ホームページ  >  に質問  >  本文

数据库 - 请问redis遇到条件查询怎么办呢?

我是新手刚想学redis,但是看了很多资料都在说redis怎么快怎么快,很少说具体怎么应用到项目上的,就算有也是做队列或是缓存用。看了看redis入门资料也说redis只支持k->v类型的数据保存且没有条件查询,那如果遇到条件查询了怎么办呢?如保存了一些对象:a{name:lijiang age:60 } 请问怎么查询所有姓li的用户或所有年龄是60的用户呢?

巴扎黑巴扎黑2799日前746

全員に返信(1)返信します

  • 高洛峰

    高洛峰2017-04-21 11:18:04

    高速化には代償が伴います。 redis は非リレーショナル データベースです。条件に基づいてクエリを実行するには、データのインデックスを手動で作成する必要があります。

    ハッシュセットはオブジェクトを保存するために使用できます。ハッシュセット キーが「user:name」の形式であると仮定します。
    条件付きクエリではソートセットを使用できます。 key はオブジェクトのフィールドです。名前を検索するときは、zRangeByLex コマンドを使用できます:

    リーリー

    その後、user:lijiang と user:likui を使用して関連情報を取得できます。

    名前が li で始まる人を検索するには、'[li (lj') を使用して、半公開範囲 [li..., lj) 内の文字列を検索します。 Redis が文字列とそのプレフィックスを比較すると、長い方が大きくなります (例: liA > li、liABCDEF... < lj)。

    (注: zRangeByLex には Redis バージョン >2.8.9 が必要です)

    条件付きで年齢を検索するには、ソートセットの zRangeByScore コマンドを使用できます。 リーリー

    zRangeByScore の 3 つのパラメーターは次のとおりです: key、min、max (閉じた間隔)

    参考: http://redis.io/commands/

    返事
    0
  • キャンセル返事