1

ユーザーの好みと基準に基づいて、基本的にデータ (テキスト ファイル) を 3 日から 1 週間キャッシュするキャッシュ ソリューションが必要です。この場合、メモリベースのキャッシュは意味がありません。MemcacheDB を紹介されましたが、NO SQL ソリューションもいくつか考えました。

私たちの現在のアプリケーションは RDMS (MYSQL) を使用しており、MemcacheDB を使用するのは理にかなっていると思いますが、NOSQL は、それが地平線上にあるため、魅力的です。しかし、私たちは NOSQL の下で製品レベルのアプリケーションを展開しておらず、ベータ版のものは経営陣や投資家の間でうまく解決していません。どのように考え、どのように対処しますか?

ありがとうございました

4

6 に答える 6

4

CouchDB と MongoDB はどちらも優れたデータベースですが、既存の RDBMS 上のキャッシュ層としては最悪の選択です。それらはまだかなり未熟であるという事実に加えて、目的にまったく適していません。また、速度に関しては、CouchDB や MongoDB を使用するよりもキャッシュ レイヤーを使用しない方がよいでしょう。単純な読み取り/書き込みでは、どちらも MySQL よりも低速です。はい、NoSQL データベースは「クール」ですが、だからと言って、意図されていない用途に使用する必要があるという意味ではありません。

私は Memcached を選びます。Memcached は、最も高速で軽量であり、よく知られており、サポートも充実しているためです。

于 2010-05-12T03:44:08.053 に答える
2

経営陣や投資家へのアピールが心配で、現在のシステム (MySQL に言及しています) が機能している場合、なぜ変更しますか? かなり安定したプロジェクトからまだベータ版のプロジェクトに移行しようとしています。現在のシステムが既に機能している場合、どのような価値を追加しますか?

于 2010-05-11T18:36:27.957 に答える
1

前述のように、すべての CouchDB リソースには etag が含まれています。

言及されていないことは、CouchDB の前に任意のHTTP キャッシング ソリューションを配置して、etag ベースのキャッシングを実行させることができるということです。このようにして、Varnish、nginx など、好きなものを使用できます。

于 2010-05-12T03:35:54.657 に答える
0

永続性を使用してmemcachedを実行する場合は、Redisを確認する必要があります。永続性とともに、すべてのmemecached機能(およびそれ以上)を備えています。

自分で試したことはありませんが、RedisがmemcachedAPIもサポートしていることを読んだことを覚えています。

于 2010-05-12T02:43:32.340 に答える
0

また、Cassandra ( http://cassandra.apache.org/ )も見てみたいと思います。MemcacheDB と CouchDB を試してみましたが、どういうわけか Cassandra の方が魅力的であることがわかりました (Coldfusion を使用しているため、PHP についてはわかりません)。関連する質問です Cassandra PHPモジュール

于 2010-05-11T18:18:11.367 に答える
0

CouchDB はすでにいくつかのキャッシュを行っています。ドキュメントを取得すると、サーバーは HTTP ETag ヘッダーも送信します (これは CouchDB のドキュメント リビジョンと同じです)。

次にブラウザが送信した同じドキュメントを要求すると、Etag が受信されます。ドキュメントが変更されていない場合、サーバーは HTTP コード304 Not Modifiedで応答し、ブラウザはローカル キャッシュからドキュメントを取得します。

ただし、ユーザーの設定に基づいて異なる時間にファイルをキャッシュする必要がある場合は、テキスト ファイルが変更されたとしても、ユーザーの設定に基づいて適切な HTTP キャッシュ ヘッダーを送信するカスタム コードを作成するのがおそらく最善の方法です。

完全を期すために、別の適切なオプションはRedisです。Memcache に匹敵するパフォーマンスが得られますが、Redis はさまざまなデータ構造 (ハッシュ、リスト、セット、ソート済みセット) とアトミック操作もサポートしています。

于 2010-05-11T20:34:23.407 に答える