sql >> データベース >  >> NoSQL >> Redis

redis.confのtcp-backlogとは

    tcp-backlogは、「完全な接続キュー」(3ウェイハンドシェイクが完了、ここで説明する内容)または「不完全な接続キュー」のサイズですか?

    tcp-backlog 完全な接続キューのサイズです 。実際、Redisはこの構成をlisten(int s, int backlog)の2番目のパラメーターとして渡します。 電話してください。

    @GuangshengZuoは、この質問に対してすでに良い答えを持っていました。それで、もう一方に焦点を合わせます。

    「完全な接続キュー」を意味する場合、不完全な接続キューのサイズを制限するtcp_max_syn_backlogを上げる必要があるのはなぜですか?

    あなたが言及したドキュメントからの引用:

    実装では、SYNキュー(または不完全な接続キュー)と受け入れキュー(または完全な接続キュー)の2つのキューを使用します。状態SYNRECEIVEDの接続はSYNキューに追加され、後で状態がESTABLISHEDに変わるとき、つまり3ウェイハンドシェイクのACKパケットが受信されると、受け入れキューに移動されます。名前が示すように、accept呼び出しは、単にacceptキューからの接続を消費するために実装されます。この場合、listensyscallのbacklog引数がacceptキューのサイズを決定します。

    complete connection queue内のアイテムが表示されます incomplete connection queueから移動されます

    大きなsomaxconnがある場合 小さなtcp_max_syn_backlog 、その場合、complete connection queueに移動するのに十分なアイテムがない可能性があります 、およびcomplete connection queue いっぱいになることはありません。多くのリクエストは、2番目のキューに移動する前に、最初のキューからすでに削除されている可能性があります。

    したがって、somaxconnの値のみを上げます。 動作しない可能性があります。両方を上げる必要があります。



    1. MongoDB findOneAndDelete()

    2. redisとpythonを使用して特定の受信者が消費するフェイルセーフメッセージブロードキャスト

    3. mongodb集約フレームワークでのcase-statementの実行

    4. MongoDBで範囲クエリを使用してページネーションを行う方法は?