繁体   English   中英

PHP和APC:缓存中有多个键的一个对象?

[英]PHP & APC: One object in cache with multiple keys?

我正在使用APC在PHP应用程序中实现对象缓存。

问题是,有时我会根据不同的标准从数据库中选择某些内容。 例如,当用户登录网站时,我所拥有的只是他的用户名和密码,因此我将基于用户名从数据库中进行选择。

在其他情况下,我将拥有用户ID,并希望基于该ID进行选择。

每次选择用户时,我都想将对象添加到缓存中。

因此,假设我一次将其放入键“ User.user_id.123”,一次将其放入“ User.user_name.JoeSmith”。

但是,这确实意味着我已经将同一对象两次放入了缓存,对吗? 看来效率不高。

有没有一种方法可以使用多个密钥将一个对象放入APC缓存中以便以后查找?

您可以将用户ID放入缓存中,例如User.user_name.JoeSmith=123

但是我怀疑将这些值存储在缓存中的效率。 它肯定会在运行时加快速度,但是在开发过程中可能会导致一些问题(因为基本上将相同的值存储两次,一次存储在数据库中,一次存储在缓存中)。 我立刻想到了一些事情:

  • 如果用户值更改,确定要使缓存无效吗?
  • 该对象是否引用其他对象? 引用对象更改后,缓存是否无效?

更新:这的确意味着将相同的对象两次放入缓存,这就是我最后要做的事情。 只需小心删除或更新对象时,使用所有可能的键将其从缓存中清空。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM