1

次のようなリモート通信を実現するために、単純に redis を使用できます。

redis.StrictRedis(host=REDIS_IP,port=PORT)

redisが同じパターンでリモートとローカルを達成するかどうかわかりませんか?

たぶん、redis がネットワーク通信とプロセス間通信を異なる方法で実現する方法を知りたいだけでしょうか?

間違っているところがあればご指摘ください。ありがとう

4

1 に答える 1

8

Redis は従来の TCP ソケットだけでなく、ストリーム指向のUNIX ドメイン ソケットも処理できます。

TCP ソケットは、ネットワークとローカルのプロセス間通信の両方を実行するために使用できます。Unix ドメイン ソケットは、ローカルのプロセス間通信のみをサポートできます。

どちらの種類のソケットも、ファイル記述子によって具体化されます。Redis は、ファイル記述子レベルで動作するイベント ループに基づいているため、TCP および UNIX ドメイン ソケットをまったく同じ方法 (標準ネットワーク API を使用) で処理します。関連するソース コードのほとんどはae.c (イベント ループ) とanet.c (ネットワーク) にあります。

クライアントとサーバーが同じボックスでホストされている場合、UNIX ドメイン ソケットを使用して Redis ラウンドトリップのパフォーマンスを向上させることができます。ワークロードによって異なりますが、TCP ソケットに対する UNIX ドメイン ソケットのパフォーマンス上の利点 (スループットの点で) は、通常約 1.5 です (つまり、UNIX ドメイン ソケットを使用すると、50% 多くの操作を処理できます)。

于 2013-01-14T15:01:30.627 に答える