0

マネージャーが Web ダッシュボードから更新するグローバル/クラス変数を保存する必要があります。変数は配列になります。car_types と呼びましょう。1 週間に 1 回程度、管理者は値を変更する必要があります。したがって、['suv', 'convertible', 'sedan'] から ['suv', 'convertible'] に更新されるかもしれません。

私がよくわからないのは、この変数をどこに保存するかです。確かに、更新される 1 つのレコードを含むデータベース テーブルを作成できますが、それはやり過ぎのように思えます。memecached を使用しているので、そこに変数を送信できましたが、それが十分に永続的かどうかはわかりません。ダッシュボードでクラス変数を更新することを考えていましたが、同じアプリを実行している数十のサーバーがあり、変更がすべてのボックスに複製されるのか、1 つのボックスにとどまるのかは不明です。

ありがとう

4

1 に答える 1

1

グローバル変数には $ がプレフィックスとして付けられます。例:$cars

しかし、アプリケーションがダウンした場合はどうなるでしょうか? グローバル変数はデフォルト値に再初期化されます。パフォーマンスを節約したい場合は、最終的にキャッシュを備えたデータベースをお勧めします。

$carsデータベースの値を変数にキャッシュできます

これが私の個人的なアプローチです。データベース + 頻繁に更新されないレコードのキャッシュ。テーブルに変更が加えられるとキャッシュがクリアされ、レコードの最初のフェッチ中にキャッシュが作成されます (db リクエストで)。

その結果、レコードを時々変更する柔軟性があり、サーバーがダウンしたり、マルチスレッドで問題が発生したり、キャッシュがパフォーマンスを低下させたりすることはありません。

于 2013-07-23T19:06:05.573 に答える