是的,应该是这样,特别是因为缓存可能包含用户可能希望使用插件删除的敏感信息。
最好的方法是以一种易于删除所有持久信息的方式来设计系统,例如,将所有缓存文件放在一个目录下。
就您的示例而言,缓存在理论上不应该是对象的一部分(它不是对对象的任何描述),因此您的问题在于对象的设计,这导致您在清除缓存方面存在问题。如果您唯一的选择是DB中的缓存(在我看来,这就像早期优化的症状),那么请为其使用不同的表。
Update
你的假设是
wp_cache_*
API使用持久存储为false。实际上,这是核心代码的一个重要假设,即它们不是持久的,驱动缓存的任何东西都会不时进行“垃圾收集”(核心很少从缓存中删除任何内容)。不进行垃圾收集的缓存系统要么非常特定,要么有缺陷,就好像如果不这样做,就会在某个时候耗尽RAM/磁盘空间。
此外,缓存实现可能不支持删除(不太可能,但奇怪的事情时有发生),因此在任何情况下都无法清除数据。
本质上。一方面,这些是第三方工具,您可能没有足够的控制权来确保删除任何内容,另一方面,在实践中,它们中的大多数都足够聪明,可以在足够合理的时间(不到一天)内自动删除您的数据,这使得清理数据成为一个“好东西”,但完全不是必需的。
是的,人们确实使用redis进行缓存,但在我看来这是一个错误。redis是一个nosql DB,而不是RAM/分布式缓存,尽管它可能可以配置为像这样使用。