私は100万の鍵を持つredisインスタンスを持っているとしましょう。キーにはチームIDと人物IDが含まれ、値にはそのチームと人物の関連付けに関する情報があります。例キー:接頭辞の一致パターンを含む赤いスキャンは、データベース内のすべてのキーをスキャンしますか?
team:1:person:123
team:2:person:234
team:2:person:345
...
私は与えられたチームのすべての人々を取得するためのパターンでscan
を使用することができます。例えば、scan 0 match "team:123:person:*"
は、チームになってみんなを開始するとスキャンがNキーの数はO(N)があるので、これは、ないチームの人々を反復するための効率的な方法であるように123
ですねデータベース。しかし、私は確認したい - その場合ですか?
ツリーインデックスを持つデータベースは、そのプレフィックスを持つキーを使用してツリーの小さなセクションをスキャンするだけで済みます。
すべてをスキャンすると、チーム内の人々をすばやく繰り返したい場合は、チームIDの下に人物IDのセットを格納する必要があります。ような何か:
sset team:2:people 234 345 ...