28

PostgresのHStoreについて、Redisが提供しているものについても読みました。

私たちのアプリケーションはNodeJSで書かれています。2つの質問:

  • パフォーマンスの面では、Postgres HStoreはRedisに匹敵しますか?

  • セッションストレージの場合、Redis、または他の種類のデータ型(HStore、あるいは通常のリレーショナルテーブルなど)を使用したPostgresのどれをお勧めしますか?そして、一方のオプションがもう一方のオプションと比べてどれほど悪いのでしょうか。

もう1つの制約は、すでにPostgreSQLにあるデータを使用し、それをアクティブなセッションと組み合わせる必要があることです(RedisまたはPostgreSQLの場合、この時点でどこに保存するかはわかりません)。

私たちが読んだことから、Redisをセッションマネージャーとして使用することが指摘されていますが、PostgreSQLの制約により、両方を組み合わせる方法と、発生する可能性のあるパフォーマンスの問題がわかりません。

ありがとう!

4

2 に答える 2

32

Redis は Postgres よりも高速になります。Pg はデータの信頼性を保証するためです (トランザクションがコミットされると、ディスク上にあることが保証されます)。一方、Redis には必要に応じてディスクに書き込むという概念があるため、そうすべきではありません。重要なデータに使用されます。

Redis は、セッション データに適したオプションのように思えます。Cookie やクライアント側の Javascript に保存することもできます。しかし、リクエストごとにデータベースからのデータが必要な場合は、Redis を使用する価値さえないかもしれません。それはあなたのアプリケーションに大きく依存します。

于 2012-02-06T15:28:08.703 に答える
6

PostgreSQL をセッション マネージャーとして使用することは、通常はお勧めできません。

9.1 より前のバージョンでは、永続的なメディア パラメータに基づく 1 秒あたりのトランザクションの物理的な制限でした。セッション管理の場合、通常は MGA は必要ありません (衝突がないため)。つまり、MGA はオーバーヘッドであり、MGA と ACID のないデータベースは大幅に高速 (10 または 100) でなければなりません。

PostgreSQL がセッション管理に使用され、パフォーマンスが非常に悪く不安定だったユース ケースを知っています。約 10000 のライブ セッションを持つ eshop でした。セッション管理が memcached に移行されたとき、パフォーマンスと安定性が大幅に向上しました。PostgreSQL はおそらく問題なく 100 回のライブ セッションで使用できます。数値が大きい場合は、より優れたツールがあります。

于 2012-02-05T21:30:13.203 に答える