一般に、次のシナリオがあります。
- 製品とその関連データをデータベースから取得
- 取得したデータをphpの「製品」オブジェクトに変換する
- 製品オブジェクトをセッションにキャッシュする
キャッシュは読み取り専用です。つまり、顧客はサイトで製品を表示します。
しかし、次のような呼び出しがgetProductIdsByCategory($categoryId)
あり、これらの結果の productIds も、私が読んだグローバル キャッシュを使用せずに、ユーザーごとにキャッシュされます。
問題は、管理者側の誰かが新しい製品を追加してカテゴリに関連付けた場合getProductIdsByCategory
、新しいセッションが開始されるまで、顧客のキャッシュに新しい productId が表示されないことです。
$_SESSION['x']
新しい製品が追加されたときにサーバー上のすべてのセッションなどからクリアする方法はありますか? 顧客がログインを失うなどの理由で、すべてのセッションを破棄したくありません。
それとも、これらのキャッシュされた productId 検索をグローバル キャッシュに移動する必要がありますか?
psは、memcachedなどではなく、カスタムビルドのキャッシュを使用しています。
ありがとう