Yii の Auth Manager を使用して、私は CachedDbAuthManager を使用しました。ユーザーに対して特定のロールに対して SQL が実行されると、結果がキャッシュされます。次回はキャッシュから取得されたレコード。管理者が特定のユーザーのロールを削除すると、キャッシュに残ります。
この問題の解決策は何ですか?
Yii の Auth Manager を使用して、私は CachedDbAuthManager を使用しました。ユーザーに対して特定のロールに対して SQL が実行されると、結果がキャッシュされます。次回はキャッシュから取得されたレコード。管理者が特定のユーザーのロールを削除すると、キャッシュに残ります。
この問題の解決策は何ですか?
Yii のCache Dependency Implementationを見てください。
たとえば、次のことができます。管理者が認証テーブルを編集するときにキャッシュを無効にします。データベース キャッシュの依存関係も参照してください。多くの場合、これは最新の例を探すだけで行われます。modified_at
時間ですが、この列は標準認証テーブルの一部ではありません。
データベース キャッシュのマニュアル ページから:
CDbCacheDependency は、SQL ステートメントのクエリ結果に基づく依存関係を表します。
ほぼ同じことを行っている別の拡張機能SingleDbAuthManagerがあります。認証ツリー全体を一度に読み取り、キャッシュします。
SingleDbAuthManagerとCachedDbAuthManagerの両方のパフォーマンスは非常に優れています。CachedDbAuthManager は時間がかかりませんが、私の場合はキャッシュを更新できません。