我正在使用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中的相同数据。
答案 0 :(得分:1)
不,没有本地方法在密钥之间创建memcached共享对象。
如果你真的需要实现这样的东西,你可以自己实现这样的解决方法。例如,假设键hello
映射到对象world
。
您可以这样做,以便在您的代码库中,任何具有值{'alias': N}
的密钥都会使您的代码执行密钥N的memcached查找。因此,在这种情况下,您只需按如下方式存储数据: / p>
hello
- > world
hello2
- > {'alias': 'hello'}
hello3
- > {'alias': 'hello'}
这可能是您的代码中存在的错误模式;如果您只是始终引用指向您想要的数据的键(并且每次都会节省额外的memcached匹配),那么它将更清晰,更容易维护。