6

Redisでは、次のようないくつかの操作がSINTERSTOREあります

時間の複雑さ: O(N*M) の最悪のケース。ここで、N は最小セットのカーディナリティで、M はセットの数です。

私のユース ケースでは、それぞれ 15,000 アイテム以上のセットを比較することを想定しています。これらのセットに対して N*M 操作を実行すると、O(30,000) になります。操作に時間の要件はありません。つまり、どれくらい時間がかかるかは気にしません。私の質問は、この計算が行われている間に Redis がロックするかどうかです。何か案は?

4

2 に答える 2

2

Redis はシングル スレッド アーキテクチャに基づいているため、簡単な答えは「はい」です。

単純ではない答えは「場合による」です。Redis を最適化された方法でシャードすると、この複雑な操作を行うシャードだけがブロックされ、他のシャードはブロックされません。

于 2013-09-24T20:18:29.360 に答える
1

Redis はシングルスレッドです。何もロックしませんが、そのコマンドが完了するまで他のコマンドを処理しません。つまり、Redis がロックされているかのようです。

参照:ロックと Redis

于 2013-09-24T20:14:31.037 に答える