0

使用 Yii 的 Auth Manager,我使用了 CachedDbAuthManager。一旦 SQL 针对用户执行特定角色,它就会缓存结果。下次从缓存中获取记录。现在,一旦管理员删除特定用户的角色,它仍会保留在缓存中。

这个问题的解决方案是什么?

4

2 回答 2

1

看看 Yii 的Cache Dependency Implementation

你可以例如。当管理员编辑 auth 表时使缓存失效,另请参见数据库缓存依赖项。通常这只是通过寻找最新的例如来完成。modified_at时间,但此列不是标准身份验证表的一部分。

从数据库缓存手册页:

CDbCacheDependency 表示基于 SQL 语句查询结果的依赖关系。

于 2013-04-30T10:03:30.163 回答
0

还有另一个扩展SingleDbAuthManager正在做几乎相同的事情。它一次读取整个身份验证树并将其缓存。

SingleDbAuthManagerCachedDbAuthManager的性能都非常好。CachedDbAuthManager 花费的时间更少,但在我的情况下无法更新缓存。

于 2013-04-30T11:50:28.723 回答