我正在使用APC在PHP应用程序中实现对象缓存。
问题是,有时候我会根据不同的标准从数据库中选择一些东西。例如,当用户登录网站时,我所拥有的只是他的用户名和密码,因此我将根据用户名从数据库中进行选择。
在其他情况下,我将拥有用户ID,并希望根据此选择。
每次选择用户时,我都想将对象添加到缓存中。
因此,假设我使用“User.user_id.123”键将其放入其中一次,使用“User.user_name.JoeSmith”键入一次。
然而,这确实意味着我只是将同一个对象放入我的缓存中两次,对吧?这似乎并不那么有效。
有没有办法将一个对象放入带有多个密钥的APC缓存中以便以后查找?
答案 0 :(得分:0)
您可以将用户ID放入缓存中,例如User.user_name.JoeSmith=123
。
但我怀疑将这些值存储在缓存中的效率。它肯定会在运行时加快速度,但在开发过程中可能会导致一些问题(因为基本上存储两次相同的值,一次存储在数据库中,一次存储在缓存中)。有些事情立即浮现在我的脑海中:
答案 1 :(得分:0)
更新:它确实意味着将同一个对象放入缓存两次,这就是我最后做的事情。在删除或更新所有可能的密钥时,只需要小心从缓存中清空对象。