0

ノード js と redis を使用して TCP チャット サーバーを実装していますが、パブリッシュとサブスクライブを使用して redis でチャット データを保持できないようです。最新のメッセージ、このようなものをどのように実装すればよいですか?

4

2 に答える 2

3

ディスク ストレージを選択したとしても、パブリッシュは Redis に保存されることを意図していません。メッセージを受信すると、要求されたチャネルとの接続を見つけて、それぞれに転送します。したがって、何も保存されていません。たとえそうであったとしても、メッセージの転送を継続的に試行する必要があります (これは pub/sub モデルであるため)。これはあまり効果的ではありません。代わりに、(メッセージをキューにlpushして、メッセージを格納できるようにすることによって)プッシュする必要もあります。また、クライアントが接続してメッセージがない場合、キューからそれらのメッセージを取得できます (ポップせずに、他の新規参入者も使用できます)。次に、チャンネルに登録して、新しいメッセージを受け取ります。

于 2013-02-20T10:11:53.780 に答える
1

デフォルトでは、redis はメモリ内にのみ存在します。持続性を明示的に有効にする必要があります。

複数のオプションがあり、AOF すべてのクエリが最も安全ですが、おそらく最も低速です。

詳細はこちら: http://redis.io/topics/persistence

于 2013-02-20T09:54:55.157 に答える