2017-01-09 11 views

答えて

1

はい。

時間の複雑さは非常に悪いです。 NO(N)であることは、データベース内のキーの総数であり、フィルタパターンで選択されているキーの数ではありません。したがって、これは本番データベースにとっては非常に大きな数字になる可能性があります。

さらに悪いことに、同時に1つのコマンドしか実行できないため(Redisはマルチスレッドではありません)、他のものはすべてそのKEYSが完了するまで待たなければなりません。

+0

いいえ。しかし、SMEMBERSコマンドはO(N)でも使えます。ここでNは集合内のキーの数(データベース全体ではない)であり、Nの最大値は2^32-1であり、これは問題にはなりません。私は正しいですか? – Jsmith

+0

はい、セットが巨大でない限り(2^32セットのメンバーに達する前にデザインを再考する必要があります)。 – Thilo

+0

ありがとうございます。 Redisはシングルスレッドなので、一度に1つのコマンドしか実行できないと言っています。しかし、それは時間多重化によって他のコマンドを同時に処理することはありませんか?したがって、KEYSコマンドが完了するまで他のコマンドが待機する必要はありません。参照してください:http://stackoverflow.com/questions/10489298/redis-is-single-threaded-then-how-does-it-do-concurrent-io – Jsmith

関連する問題