首页 > 解决方案 > 内存缓存中的 .add 操作行为不端

问题描述

我在很多地方读过,如果我们将新的键和值添加到缓存中,则对 memcache 对象添加操作返回 true,如果键已经在其中,则返回 False。但是当我如下测试它时,我总是看到它为我返回 True

from pymemcache.client import base
client = base.Client(('localhost', 11211))

key = 'lock-1'
val = 'lock-val-1'
x = client.get(key)
print("x1", x)

lock = client.add(key,val,120)
print(lock)
x = client.get(key)
print("x2", x)

如果我的 x1 打印语句为 None,这意味着我在 memcache 中没有密钥,并且我的添加操作已执行。但是,如果我们运行此代码一次,我可以看到我的 x1 打印行,其值为“lock-val-1”。所以,这绝对应该意味着我在缓存中有密钥。即使是现在,添加操作也返回 True。谁能弄清楚为什么?

标签: memcachedpymemcached

解决方案


推荐阅读