ホームページ >バックエンド開発 >PHPチュートリアル >PHP で Memcache を使用する場合のシミュレートされた名前空間とキャッシュの無効化の問題を解決する、memcache namespace_PHP チュートリアル
キャッシュ名前空間
Memcache 自体は名前空間をサポートしていませんが、memcache 独自のメカニズムを使用して名前空間をシミュレートできます。例: データのセットをクリアしたい場合は、名前空間を使用する必要があります。そのような例を見てみましょう:
リーリーmemcache キャッシュ無効化の問題
同時実行数が多い状況では、キャッシュに障害が発生すると、多数の同時ユーザーが同時にキャッシュにアクセスできなくなり、データベースにアクセスして同時にキャッシュをリセットすることになり、システムに潜在的な過負荷リスクが生じる可能性があります。 。
解決策:
方法 1
データベースをロードする前にミューテックス キーを追加します。ミューテックス キーの追加が成功した後、追加が失敗した場合は、スリープして元のキャッシュ データの読み取りを再試行します。デッドロックを防ぐために、ミューテックス キーにも有効期限を設定する必要があります。疑似コードは以下の通りです
方法 2
値内にタイムアウト値 (timeout1) を設定します。timeout1 は実際の memcache よりも長くなります
タイムアウト(timeout2)が小さいです。 timeout1 がキャッシュから読み取られ、期限切れであることが判明すると、timeout1 は直ちに延長され、キャッシュにリセットされます。らん
次に、データベースからデータをロードし、キャッシュに設定します。疑似コードは以下の通りです