gpt4 book ai didi

python - 使用 memcache.add() 而不是 set()

转载 作者:太空狗 更新时间:2023-10-30 01:16:29 25 4
gpt4 key购买 nike

通常我这样做:

if not memcache.get('mykey'):
memcache.set('mykey', item)

但是,今天我看到了 memcache.add(),它似乎只在项目尚不存在时才添加该项目。那么这是否等同于我上面的代码?我可以用 memcache.add() 替换上面的代码吗?

此外,更重要的是,我正在使用 AppStats,在 RPC 调用跟踪下,我可以查看我的请求是否调用了 memcache.set()get()datastore.put()get()。使用上面的 2 行代码时,我没有看到 memcache.set() 的任何内容,这是预期的。但是,仅使用 memcache.add()(不检查项目是否已存在)总是调用 memcache.set(),即使 memcache.add() 返回 false(意味着未插入新项目)。为什么会这样?

最佳答案

您当前的代码存在竞争条件:在检查内存缓存中是否存在某个值和将其插入之间,另一个进程可能已经插入了一个值,您现在将覆盖该值。使用 memcache.add 不会受到这种竞争条件的影响。

我不确定你的第二个问题是什么意思;调用 memcache.add 应该只会导致 add 调用,而不会导致 set 调用。您能否包含您在这种情况下运行的代码?

关于python - 使用 memcache.add() 而不是 set(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13234556/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com