memcached - 内存缓存中的 .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。谁能弄清楚为什么?
解决方案
推荐阅读
- c# - 将数组一分为二,以找到获得相等或几乎相等的整数和的最佳解决方案
- python - 值在数据库上时注册帐户(窗口)拒绝(MySQL)
- java - 如何在android中使用圆角矩形自定义图像视图
- azure-devops - 保留某些版本并无限期发布
- javascript - 如何使用javascript在d3js中更改强制有向图中节点的颜色?
- java - org.hibernate.exception.DataException:无法更新 JavaObjectHere
- sapui5 - 在建议项选择上设置 sap.m.Input 描述
- data-warehouse - DWH 建模最佳实践:二维使用的日期键
- jquery - 如何在 Angular 2+ 中使用循环和自动播放轮播
- json - Postman 无法处理长字符串的 JSON 响应