0

Yii の Auth Manager を使用して、私は CachedDbAuthManager を使用しました。ユーザーに対して特定のロールに対して SQL が実行されると、結果がキャッシュされます。次回はキャッシュから取得されたレコード。管理者が特定のユーザーのロールを削除すると、キャッシュに残ります。

この問題の解決策は何ですか?

4

2 に答える 2

1

Yii のCache Dependency Implementationを見てください。

たとえば、次のことができます。管理者が認証テーブルを編集するときにキャッシュを無効にします。データベース キャッシュの依存関係も参照してください。多くの場合、これは最新の例を探すだけで行われます。modified_at時間ですが、この列は標準認証テーブルの一部ではありません。

データベース キャッシュのマニュアル ページから:

CDbCacheDependency は、SQL ステートメントのクエリ結果に基づく依存関係を表します。

于 2013-04-30T10:03:30.163 に答える
0

ほぼ同じことを行っている別の拡張機能SingleDbAuthManagerがあります。認証ツリー全体を一度に読み取り、キャッシュします。

SingleDbAuthManagerCachedDbAuthManagerの両方のパフォーマンスは非常に優れています。CachedDbAuthManager は時間がかかりませんが、私の場合はキャッシュを更新できません。

于 2013-04-30T11:50:28.723 に答える