0

チャット メッセージを保存するためのデータベースとして Redis を使用するこのアプリケーションを作成しています。特定のキーがまだ存在しないことを確認するために、特定のキーを設定する必要があるときはいつでも SETNX を使用することを検討しています。

ただし、アプリケーションはリアルタイムであるため、非常に応答性が高い必要があります。私が知りたいのは、特にその操作を実行するクライアントが多数ある場合、SETNX 操作の実行にコストがかかるかどうかです。

NB: このドキュメントhttp://redis.io/topics/data-types-introを読みましたが、SETNX 実装で少し終了しているように見えますが、どれだけコストがかかるかはまだわかりません。ありがとう。

4

1 に答える 1

1

私が知りたいのは、特にその操作を実行するクライアントが多数ある場合、SETNX 操作の実行にコストがかかるかどうかです。

速度に関して-redisはメモリベースであるため、「非常に高速」になります。1 回 (setnx) ではなく 2 回のネットワーク ラウンドトリップ (get と set) を実行するため、最初にキーを取得して存在するかどうかを確認し、存在しない場合はキーを設定する場合よりも確実に高速です。

多数のクライアントに関して-redisはシングルスレッドであり、コマンドが到着すると順次実行され、同時に接続された多くのクライアントを処理できます(docsを参照)。

于 2013-06-08T10:08:53.657 に答える