2

memcache に保存する値が 1MB を超える状況が発生しています。

このような値を小さくすることはできません。方法があったとしても、それらをディスクに永続化する必要があります。

1 つの解決策は、memcache サーバーを再コンパイルして、たとえば 2MB の値を許可することですが、これはクリーンでも完全な解決策でもありません (値を永続化する必要があります)。

良いニュースはそれです

  1. キーと値のペアがいくつになるかをかなり正確に予測できます
  2. また、必要な合計サイズを予測することもできます。

私たちにとって重要な機能は、memcache の速度です。

質問は次のとおりです。1MB を超える値を保持し、速度を落とさずにディスクに格納できるようにする、memcache に代わる noSQL はありますか?

過去に tokyotyrant/cabinet を使用していましたが、現在は非推奨になっているようです。

何か案が?

4

5 に答える 5

3

私はredisを使用します。

Redis は、リストした問題に対処し、最大 512Mb のキーと最大 2Gb の値をサポートします。

1 秒、5 秒などの頻度で AOF スナップショットを使用してデータをディスクに永続化できますが、ほとんどの場合、RDB永続化は AOF よりも最大のパフォーマンスを提供します。

json ドキュメントのキャッシュには redis を使用します。最大のパフォーマンスを得るには、可能であれば物理ハードウェアに redis をデプロイすることを学びました。仮想マシンは、redisネットワークのパフォーマンスに劇的な影響を与えます。

于 2013-10-25T04:06:33.357 に答える
0

1 つのドキュメントに対して最大 20 MB をサポートできます。バケットを memcache または couchbase プロトコルとして実行できます。後者は永続性を提供します。

キー/メタデータのその他の制限については、こちらをご覧ください: http://www.couchbase.com/docs/couchbase-manual-2.0/couchbase-server-limits.html

そして、mongodb/cassandra と couchbase がスループット/オペレーションで 1 秒間にどのように積み重なっていくかについてのプレゼンテーション。http://www.slideshare.net/renatko/couchbase-performance-benchmarking

私はプロダクションでredisとcouchbaseの両方を使用しました.memcacheの代わりに永続的に座っているため、プロトコルに基づいて構築されたnosql dbに反論するのは困難です。

于 2013-10-25T23:05:08.950 に答える
0

どんなキー/バリュー ストアでも構いません。たとえば、次のリストを参照してください: http://www.metabrew.com/article/anti-rdbms-a-list-of-distributed-key-value-stores

また、MongoDB も見てください。耐久性は問題ではないようです。これは基本的に Mongo の苦手なところです。そのため、高速なドキュメント データベース (基本的にステロイドのキー/バリュー ストア) とインデックスを無料で取得できます。せめて大きくなりすぎるまでは。

于 2013-10-25T11:52:26.093 に答える