两个键可以指向memcache中的相同数据

时间:2013-08-05 10:08:30

标签: php memcached key

我正在使用PHP和Memcache。我想要多个键指向相同的数据。

$datawallright = $memcache->get('wads'.$wall->getIdwall());

这是我检索数据的方式。如果没有数据我会做一些MySql查询,这需要时间。大多数时候,关键点指向唯一数据。问题是,有时我想要更多的键指向相同的数据。

$memcache->set('wads'.$wall->getIdwall(), $datawallright, false, 3600) or die ("Failed to save data at the server");

如果我这样做,它将保存memcache中的数据,这对于唯一值是可以的,但它会在另一个场景中多次存储数据,这会浪费缓存中的空间。

所以我想要的bassicaly是wads1和wads2指向memcache中的相同数据。

1 个答案:

答案 0 :(得分:1)

不,没有本地方法在密钥之间创建memcached共享对象。

如果你真的需要实现这样的东西,你可以自己实现这样的解决方法。例如,假设键hello映射到对象world

您可以这样做,以便在您的代码库中,任何具有值{'alias': N}的密钥都会使您的代码执行密钥N的memcached查找。因此,在这种情况下,您只需按如下方式存储数据: / p>

hello - > world

hello2 - > {'alias': 'hello'}

hello3 - > {'alias': 'hello'}

这可能是您的代码中存在的错误模式;如果您只是始终引用指向您想要的数据的键(并且每次都会节省额外的memcached匹配),那么它将更清晰,更容易维护。