CachedDbAuthManager清除用户特定角色的缓存

时间:2013-04-30 09:29:02

标签: caching yii yii-extensions

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

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

2 个答案:

答案 0 :(得分:1)

看看Yii的Cache Dependency Implementation

你可以,例如。管理员编辑auth表时,缓存无效,另请参阅database cache dependency。通常这只是通过寻找最新的例如。 modified_at时间,但此列不是标准身份验证表的一部分。

从数据库缓存手册页:

  

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

答案 1 :(得分:0)

还有另一个扩展程序SingleDbAuthManager正在执行几乎相同的操作。它立即读取整个auth树并缓存它。

SingleDbAuthManager CachedDbAuthManager 的性能正在进行验证。 CachedDbAuthManager占用的时间较少,但在我的情况下无法更新缓存。