0
我想使用缓存机制来帮助提高PHP应用程序的性能,并将它看作是一个不错的选择。然后看着它,我发现一个更一般的问题与缓存...创建记录缓存的最佳方式(在本例中为Memcache)
但我看到的问题是,如果在例子中,我只是简单地使用SQL语句作为缓存结果的哈希键,然后有一个可能出现重复记录的情况。如果SQL A将获取记录1,2,4并且SQL B将获取记录2,3和6,则会发生这种情况。在这种情况下,记录2将在两个结果集中。如果我简单地检索记录,然后链接到相同的记录 - 我没有真正获得任何性能提升,并且可能会减慢应用程序的速度。
其他人一定会遇到这个 - 所以我不知道有什么人会建议,以更好的方式管理缓存。或者它是简单的不去缓存,并总是依赖于数据库?
谢谢。
这很有道理 - 虽然它提示了一个新问题。如果我从SQL A更改记录2,是否应该使SQL B的缓存无效?如果不是,则SQL B中的值将过期。或者,如果我更新任何记录,这是否升级?我是否扔掉了所有缓存的结果? – 2012-02-16 13:00:33
这就是它涉及到缓存策略的细节的地方,它更高效。对于不经常更新,只需在更新时清理整个缓存就可以了。对于热门网站的频繁更新,每隔x分钟清理整个缓存可能是有意义的,因此整个网站在x分钟内似乎是静态的。等等,有很多可能的策略。 – deceze 2012-02-16 23:01:41