使用Yii的Auth Manager我使用了CachedDbAuthManager。一旦SQL针对用户执行特定角色,它就会缓存结果。下次从缓存中获取记录。现在,一旦管理员删除特定用户的角色,它仍然保留在缓存中。
这个问题的解决方案是什么?
答案 0 :(得分:1)
看看Yii的Cache Dependency Implementation。
你可以,例如。管理员编辑auth表时,缓存无效,另请参阅database cache dependency。通常这只是通过寻找最新的例如。 modified_at
时间,但此列不是标准身份验证表的一部分。
从数据库缓存手册页:
CDbCacheDependency表示基于SQL语句的查询结果的依赖项。
答案 1 :(得分:0)
还有另一个扩展程序SingleDbAuthManager正在执行几乎相同的操作。它立即读取整个auth树并缓存它。
SingleDbAuthManager 和 CachedDbAuthManager 的性能正在进行验证。 CachedDbAuthManager占用的时间较少,但在我的情况下无法更新缓存。