Php 非过期缓存

Php 非过期缓存,php,caching,Php,Caching,我正在用PHP开发一个电子商务系统。我总是想向客户显示更新的数据,但需要内存缓存。 我在想,是否有一种常见的方法,即使用不过期的缓存,并在数据更新时删除缓存。或者这是一种糟糕的做法?我在一个流量相当高的拍卖网站上工作,我们不得不进行大量缓存以保持网站正常运行 我们使用了两种缓存失效: 活动的 对于任何变化非常快的内容,我们将使用主动失效。对我们来说,这是出价/在任何给定时刻一件物品的价格。我们会无限期地缓存这些信息,当有人出价时,我们会主动清除缓存 不过,我们将主动吹扫保持在绝对最小 此外,您还

我正在用PHP开发一个电子商务系统。我总是想向客户显示更新的数据,但需要内存缓存。
我在想,是否有一种常见的方法,即使用不过期的缓存,并在数据更新时删除缓存。或者这是一种糟糕的做法?

我在一个流量相当高的拍卖网站上工作,我们不得不进行大量缓存以保持网站正常运行

我们使用了两种缓存失效:

活动的

对于任何变化非常快的内容,我们将使用主动失效。对我们来说,这是出价/在任何给定时刻一件物品的价格。我们会无限期地缓存这些信息,当有人出价时,我们会主动清除缓存

不过,我们将主动吹扫保持在绝对最小

此外,您还需要确保是否正在主动清除缓存对象。。。确保它只存在于一个地方。尝试在缓存中搜索所有实例并在任何地方更改它们太痛苦了

被动的

这是给对象一个生存时间(TTL)并让它自己优雅地过期的地方。用它来处理那些可以承受一点陈腐的东西

我们95%的数据都采用了这种方法,效果很好

它也很容易编程,不像主动失效



对于主动和被动缓存无效。。。我不会说这两种做法都不好。

对我来说似乎是合理的。危险的部分在于可能传递旧数据。无论更新的来源是什么(如果数据库中有多个应用程序,或者如果有人直接手动编辑数据),您都必须绝对肯定基础数据更新时缓存会得到更新。谢谢您的输入。我打算在DB和应用程序(如redis或cassandra)之间建立一个键/值数据库,而不是缓存。这可能和memcache一样快,但在更新时只需跟踪一项。你觉得这个主意怎么样?不确定-我没试过。一般来说,我只使用常规数据库,只缓存不必达到第二个live的内容,即使如此,缓存生命周期也很短(最多几分钟)。从设计上看,数据库访问通常是非常快的,因此除非您需要压缩数据访问的每一微秒,否则您可能会引入比必要的更复杂的问题。现在直接使用数据库是值得的,看看这是否足够好,并且只在必要的时候才担心缓存层。