2011-12-31 5 views
0

私はZend_Cacheを使用しようとしていましたが、常に変更または更新されている変数を持っているときには最適な解決策ではないとhereと言います。共有グローバル変数に対する解決策は、常にすべてのユーザーによって変更または更新されますか?

お勧めですか?並行性の問題なしに、すべてのユーザーが同時に変更、更新、および共有できる優先順位キューが必要です。この変数はサーバー上で永遠に存続します。

ありがとうございます!

+0

トランザクションやアトミックなアクションをサポートするものが必要なようです。あなたはRDBMSを考えましたか?また、このサイトではどのようなトラフィックを期待していますか?言い換えれば、パフォーマンスはどれくらい良いことが必要ですか。 – Corbin

+0

私はデータベースが必要ないと思っています。パフォーマンスは重要です。アトミック操作でZend_Registryを使用できると思いますか? –

+1

この1人のユーザーがこの「変数」で動作しているのですか?複数の場合は、2つ以上の要求がアクセスできるようにデータを格納する必要があります。 Zend_Registryは、リクエストごとに固有です。あなたのストレージのオプションは、ファイルロックを持つフラットファイル、RDBMS、またはアトミック性を提供する何らかの他のデータストアです(いくつか見落とされます)。 – Corbin

答えて

1

これはまた、Zend_Cacheのバックエンドに依存していると思います。デフォルトのファイルストレージはおそらく最速の解決策ではありませんが、Memcachedは大きく異なって見えるかもしれません。

しかし、キャッシュはちょうどそれであることを覚えておくことが重要です。既存のデータをより早く利用できるようにすることです。共有変数が存続する必要があり、並行性の問題を避けるためにトランザクションが必要な場合は、ファイルやデータベースの中に何らかの永続性メカニズムが必要です。

+0

しかし、私の変数は絶えず変化しているので、dbまたはファイルでキャッシュするのは良い考えではないと思います。私が使うことができる何かを知っていますか?それは本質的に変数のアトミック演算を処理しますか? –

+0

実際にパフォーマンスに問題がありますか?値が1秒間に数百回よりも頻繁に変化するほど十分なユーザベースを持っていますか?あなたの要件は、データベースとまったく同じように見えます。 PHPは本質的にシングルスレッドなので、状態を共有するために何らかの種類のメディエータが常に必要です。 – Daff

関連する問題