重复的memcached对象

时间:2011-12-13 18:10:59

标签: php caching memcached

我正在使用Memcached来存储一些PHP对象 - 让我说我的对象是一罐苏打水。现在我的百事可乐的memcached键是4.所以当我得到'soda_4'时,我得到百事可乐对象。

问题是有时我知道我需要百事可乐,但我没有它的ID。因此,在获取memcached对象之前,我需要进行数据库调用以获取ID。这似乎效率低下。

如果我可以通过2个键引用同一个对象,那将是完美的(每次我保存对象时我都有ID和名称)。

此时我正在考虑每次保存2份。

有什么建议吗?

1 个答案:

答案 0 :(得分:2)

方法A: -

  1. 使用两个缓存
  2. key A =“name”=> “id”(pepsi => 4)
  3. 键B =“id(百事可乐的详情)
  4. 因此,当您有对象名称时,可以引用键B. 缺点是你必须打两个电话。

    方法B

    您已经提到过,使用name和id作为密钥创建两个缓存 缺点是你要复制数据 因此,memcache的容量将减少50%。

    我更喜欢你的建议,但是