我创建了一个论坛,我们正在实施一个 apc 和 memcache 缓存解决方案来为数据库节省一些工作。
我开始使用“Categories::getAll”之类的键来实现缓存层,如果我有用户特定的数据,我会在键中附加用户 ID 之类的东西,这样你就可以得到"User::getFavoriteThreads|1471"
. 当用户添加新的收藏线程时,我会删除缓存键,然后它会重新创建条目。
然而,问题来了:
我想缓存论坛中的线程。很简单,“Forum::getThreads|$iForumId”。但是......使用分页,我必须将它分成几个缓存条目,例如
"Forum::getThreads|$iForumId|$iLimit|$iOffset".
没关系,直到有人在论坛上发布新帖子。"Forum::getThreads|$iForumId"
无论限制和偏移量是多少,我现在都必须删除 下的所有键。
解决这个问题的好方法是什么?我真的不想遍历所有可能的限制和偏移,直到找到不再匹配的东西。
谢谢。