数据库 - 请问redis遇到条件查询怎么办呢?
巴扎黑
巴扎黑 2017-04-21 11:16:04
0
1
685

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

巴扎黑
巴扎黑

全員に返信 (1)
小葫芦

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

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

リーリー

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

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

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

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

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

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

いいねを押す+0
    最新のダウンロード
    詳細>
    ウェブエフェクト
    公式サイト
    サイト素材
    フロントエンドテンプレート
    私たちについて 免責事項 Sitemap
    PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!