ファイルベースのキャッシュ ソリューションの観点から見ると、Memcachedb と MongoDB と CouchDB はどちらでしょうか?
-
26-09-2019 - |
質問
ユーザーの好みや基準に基づいて、基本的にデータ (テキスト ファイル) を 3 日から最大 1 週間キャッシュするキャッシュ ソリューションが必要です。この場合、メモリベースのキャッシュは意味がありません。MemcacheDB について言及されましたが、SQL を使用しないソリューションもいくつか考えました。
現在のアプリケーションは RDMS (MYSQL) を使用しているため、MemcacheDB を使用するのが理にかなっていると思いますが、NOSQL は、より近い将来に登場するものであるため、魅力的です。しかし、私たちは NOSQL の下で実稼働レベルのアプリケーションをデプロイしておらず、ベータ版の内容は経営陣や投資家とうまく合意していません。あなたの考えは何ですか、そしてそれにどのように対処しますか?
ありがとう
解決
のCouchDBとMongoDBは、両方の偉大なデータベースであるが、彼らは既存のRDBMSの上にキャッシュ層のためのひどい選択肢です。彼らはかなり未熟残っているという事実に加えて、彼らはすべての目的に合いません。彼らは両方のも、MySQLのより単純な読み取り/書き込みの遅いです - また、高速ワイズあなたはCouchDBのか、MongoDBのを使用するよりもキャッシュ層なしで行くほうが良いと思います。はい、NoSQLのデータベースは、「クール」されているが、それはあなたが彼らが行うことを意図していなかった何かのためにそれらを使用する必要があるという意味ではありません。
それはあなたが見つける最速・最軽量の事についてだけだと私は、Memcachedのでいいと思うし、それはよく知られており、よくサポートされます。
他のヒント
、なぜあなたは、変更のでしょうか?あなたはまだベータ版でのプロジェクトにかなり安定したプロジェクトから移動している、現在のシステムがすでに?
を動作するかどうか、あなたはどのような値を追加していますのように、すべてのCouchDBのリソースがetagsのを含む、上記
どのような言及されなかったことは、あなたがCouchDBの目の前に任意ののHTTPキャッシングソリューションをを入れて、それがのETagベースのキャッシュを行うことができますということです。この方法であなたが好きな、ワニス、nginxのを使用することができます。
私もカサンドラを見てみたい( http://cassandra.apache.org/する )。私は何とか(私は、ColdFusionで動作するので、PHPに関する知らん)をカサンドラは、より魅力的な見つけ、MemcacheDBとCouchDBのを試してみました。ここに関連する質問がありますカサンドラPHPモジュールの
CouchDB はすでにいくつかのキャッシュを行っています。ドキュメントを取得すると、サーバーは HTTP ETag ヘッダーも送信します (これは CouchDB のドキュメント リビジョンと同じです)。
次回ブラウザが同じドキュメントを要求すると、受信した Etag が送信されます。ドキュメントが変更されていない場合、サーバーは HTTP コードで応答します。 304 未変更 ブラウザはローカル キャッシュからドキュメントを取得します。
ただし、テキスト ファイルが変更されたとしても、ユーザーの設定に基づいて異なる時間でファイルをキャッシュする必要がある場合、おそらく最良のオプションは、ユーザーの設定に基づいて適切な HTTP キャッシュ ヘッダーを送信するカスタム コードを作成することです。
完全を期すために、別の良いオプションは次のとおりです レディス. 。Memcache と同等のパフォーマンスが得られますが、Redis はさまざまなデータ構造 (ハッシュ、リスト、セット、ソート セット) とアトミック操作もサポートしています。
、あなたはRedisのをチェックアウトする必要があります。これは、すべてのmemecachedの機能を持っている(以上)持続性と一緒に。
私はそれを自分自身を試していないが、私はRedisのも同様memcachedのAPIをサポートすることを読んで覚えています。