php - 两个key可以指向memcache中的同一个数据吗

标签 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");

如果我这样做,它会将数据保存在内存缓存中,这对于唯一值来说是可以的,但在其他情况下它将多次存储数据,这会浪费缓存中的空间。

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

最佳答案

不,没有本地方法可以使 memcached 在键之间共享对象。

如果您确实需要实现这样的事情,您可以自己实现这样的解决方法。例如,假设键 hello 映射到对象 world

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

你好 -> 世界

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

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

不过,这可能是代码中的一个不好的模式;如果您始终首先引用指向您想要的数据的键(并且每次都会节省额外的 memcached 命中),那么它会更干净,更容易维护。

关于php - 两个key可以指向memcache中的同一个数据吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18055529/

相关文章:

php - memcached.dll 是否存在?

zend-framework - 用于 Memcache 的 Zend_Session SaveHandler

java - HashMap 包含某个键,但告诉我它没有

XSLT 2.0 Xpath 错误 "not a node item"

php - Yii CRUD 索引按数据库项过滤项

php - PHP 如何为变量分配和释放内存?

php - memcached可以存储复杂的对象吗?

PHP 返回在二进制文件执行中找不到

php - 调整注销功能以处理 Safari 后退按钮问题

android - 无法获取 Facebook Connect Android SDK 的 Release Keyhash