2010-12-07 21 views
2

私はWebアプリケーションを開発中です。スケーラビリティのために構築する必要があります。頻繁なMySQLクエリをキャッシュに格納します。私は構築して準備ができているものはほとんどありますが、私はデータをキャッシュする場所を扱うベストプラクティスに懸念しています。私はいくつかの人と話し合い、そのうちの1人は、各キー/値をすべてのmemcacheノードに分割するように提案しました。私は例格納する場合の意味memcache/php - multi memcacheノードを使ったベストプラクティス

:それは全体の分割されます「somekeyを」、「この値は」

は3台のmemcacheのサーバを言うことができます。

これは良い方法ですか?またはmemcacheは1対1の関係でより構築されていますか?例えば。

サーバーAの値をフォルトアウトするまでサーバーBに移動して保存します。

これは、私がやった研究とmemcacheでの過去の経験からの私の現在の理解です。

誰かがこれに正しい方向で私を指摘し、私が完全にこのミックスアップを持っている場合、どの方法が最善かを教えてください。

おかげ

答えて

0

私はmemcacheのサーバーがダウンした場合、あなたの鍵が再配布されることはありません:)

私はこの方法でhttp://php.net/manual/en/memcached.constants.php

を参照してくださいPHPで

を一貫性のあるハッシュを使用します経験memcacheサーバーは本当に信頼性が高く、通常OSのアップグレードなどのために再起動されます。

一貫したハッシュを使用しない場合、サーバーが出て戻ってくると、そのサーバーに古いデータがキャッシュされている可能性があります。 Aが利用可能になりましたので

IE MemcacheのサーバA、B

A: set key = 1234, value = 'abc', expires = 1 day 
B: 
after a time 
A: vanishes 
B: get key = 1234 
    returns nothing 
B: set key = 1234, value = 'def', exipres = 1 day 
after more time 
A: comes back! 

get_key(1234)、 'ABC' を返します。!

-ダニエル

関連する問題