2

毎秒100件のリクエストがあり、クエリごとにハッシュ値を抽出してから、同じハッシュを次のように更新する必要があるとします。

redis.hget'value'、'user-123' redis.hset'value'、'user-123'、JSON.generate({:number_of_visits => 15})

1秒あたりの読み取り/書き込みが大量にある場合はどうなりますか?

redisはhgetコマンドとhsetコマンドの両方をキューに入れるだけで、すべてが入ってくる順に実行されますか?より多くのコマンドが入ってくると、hgetsが遅くなりますか?

4

1 に答える 1

3

Redisは単一のスレッドを使用してコマンドを処理するため、コマンドは到着した順に処理されます。

ここにいくつかのドキュメント、

そのルーツでは、Redisはシングルスレッドサーバーです。これは、単一のスレッドがepoll、kqueue、selectなどのイベントベースのパラダイムを使用して着信接続を読み取ることを意味します。ファイル記述子で特定のイベントが発生すると、それらを処理して応答を書き戻します。このUMLシーケンス図は、クライアントが受信したコマンドがRedisによって内部的に処理される方法を示しています。

redisが処理できる速度よりも速い速度でコマンドを送信すると、コマンドはredisでキューに入れられ、クライアントはコマンドがデキューされて処理されるのを待つため、待ち時間が長くなります。これは、hsetコマンドとhgetコマンドの両方に影響します。

于 2012-09-10T02:24:42.453 に答える