TL;DR
<瞬态处理的Wordpress部分是可靠的,一切都非常精确。对于非默认实现,瞬态使用对象缓存而不是数据存储。这意味着一些后端缓存系统会删除最近未访问的缓存。底线是:这不是Wordpress的错误,这只取决于后端缓存的设置方式,您可以获得更精确的瞬态,但需要对后端缓存进行调整,如果您不知道自己在做什么,我不建议您这样做,过多的缓存可能会产生相反的效果。
But even then, don\'t assume that it is 100% precise.
发件人
WordPress Codex:
每个人似乎都误解了瞬时过期的工作原理,所以它的长短是:瞬时过期时间是最长的时间。没有最低年龄。瞬态可能会在设置后的一秒钟或24小时内消失,但它们在过期后将永远不会出现。
你应该always 有一个后备方法。
<小时>
Why is it happening?!
WordPress仅在尝试读取瞬态时使其无效(这在过去会导致垃圾收集问题)。但是,对于其他后端,这并不能保证。
瞬态将对象缓存用于非默认实现。这里需要注意的真正重要的部分是,对象缓存是一个缓存,而绝对不是一个数据存储。这意味着到期时间是一个最大年龄,而不是一个最小值或设定值。
一个容易发生这种情况的地方是将Memcache设置为最近使用最少(LRU)模式。在此模式下,当Memcache需要空间容纳新条目时,它会自动丢弃最近未访问的条目。这意味着访问频率较低的数据(如cron数据使用的数据)可以在到期之前丢弃。
阅读更多信息this article, 解释得很好。
<小时>
Caching?
虽然有很多不同的系统,但这里有一个MySQL数据库缓存通常是如何工作的示例。我不确定理解瞬态缓存有多大帮助,但我想这不会有什么坏处。
缓存来自每个不同查询的数据每个缓存的数据都会得到一个值(更复杂的查询==
值越高)
这些值越小(如果愿意的话,就像倒计时计时器一样)缓存系统每隔一段时间检查这些值。如果这些值中的任何一个达到零,缓存就会被破坏。如果再次运行相同的查询,值会返回到初始值。。你能从中得出什么结论?没有必要设置瞬态:太简单了,不经常使用,因为在大多数情况下,它们很快就会被破坏。我希望这能让您更清楚地了解缓存的工作原理。它将频繁和复杂的数据优先于简单和很少使用的数据。
Note: 缓存解释中有很多概括,使其易于理解和理解。