两个键是否可以指向Memcache中的相同数据 [英] Can two keys point to the same data in memcache

查看:49
本文介绍了两个键是否可以指向Memcache中的相同数据的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我使用的是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中,这对于唯一值来说是可以的,但在另一种情况下,它会多次存储数据,这是对缓存中空间的浪费。

因此,我主要希望wads1和wads2指向内存缓存中的相同数据。

推荐答案

否,没有本机方法使Memcached在键之间共享对象。

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

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

hello->world

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

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

这可能是您的代码中不好的模式;如果您首先只引用指向您想要的数据的键,它会更干净、更易于维护(而且每次都会保存一个额外的Memcached命中)。

这篇关于两个键是否可以指向Memcache中的相同数据的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆