当前位置:  开发笔记 > 编程语言 > 正文

检查Memcache中是否存在密钥

如何解决《检查Memcache中是否存在密钥》经验,为你挑选了2个好方法。

如何在没有提取的情况下将值存储在Memcache中,如何检入PHP?我不喜欢抓取它,因为我设置的值都是1MB大小,在我获取它之后,我没有用它,所以我浪费资源.我在脚本中使用它来检查某些键是否缓存在memcache中,如果没有,它会从慢速数据源读取它们并将它们设置在memcache中.

编辑:如果我使用Memcached::append附加NULL到我正在检查的密钥怎么办?TRUE成功或FALSE失败时的退货.如果密钥不存在,Memcached::getResultCode则返回Memcached::RES_NOTSTORED.这样我检查密钥是否存在,它应该把密钥放在LRU列表的顶部吗?

谢谢.



1> user487772..:

我想知道为什么Memcached没有特殊的方法.以下是我在考虑之后得出的结论:

function has($key)
{
    $m->get($key)

    return \Memcached::RES_NOTFOUND !== $m->getResultCode();
}



2> Thariama..:

我不确定这对你有什么帮助,但你可以使用

Memcache::add  (  string $key  ,  mixed $var)

如果密钥已存在,它将返回false.

如果返回true,您可以使用

Memcache::delete  (  string $key)

删除刚刚设置的密钥.这样您就不需要获取数据了.


还有一些额外的注释:根据我的经验,这种方法(出于容易辨别的原因)比检查GET()的结果要快得多.确保ADD()为var的实际值而不是null,因为尝试添加null返回false.
推荐阅读
刘美娥94662
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有