gpt4 book ai didi

locking - memcached 可以用来加锁吗?

转载 作者:行者123 更新时间:2023-12-04 01:54:22 25 4
gpt4 key购买 nike

memcached可用于缓存静态数据,减少数据库查找,通常用于 memcached.get(id)memcached.set(id) .

但是,将其用于锁定机制是否可以?是否memcache.setmemcached.get如果数据存在,总是提供数据,或者如果请求花费太多时间,它是否只返回 None ?

我想避免并发访问由 id 标识的特定资源我使用这个逻辑:

def access(id):
if memcache.get(id):
return access
else:
memcache.set(id)
return true

如果任何用户尝试访问该资源,如果 memcache.get(id) = username返回一个值我们拒绝访问否则我们做 memcache.set(id) = username停止后续访问并允许当前用户访问。

使用 memcached可以吗?像这样?威尔 setget实际上,如果数据可用而不管它花费多少时间,或者它是否在我发现的任何时间(例如: Guaranteed memcached lock )中以尽可能少的时间提供最佳结果,则实际上是前一类,可能不适用于锁定认为它可能在 99% 的情况下都有效。

任何人都可以澄清以及是否有其他锁定机制?

最佳答案

对于对此感兴趣的任何人,我在 Memcache Github 上创建了一个线程 Will memcached work reliably for implementing a locking mechanism? .它使用 get 解释了一些常见的警告。和 set以及如何避免使用 add .如果可以搜索distributed locking,有的博客也解释了这个问题。使用 memcache在您最喜欢的搜索引擎上。

还有一个相关问题Memcached, Locking and Race Conditions这可能有助于更清楚地了解内存缓存竞争条件。

以下是 Memcache 论坛上关于此的更多讨论:

Thread 1Thread 2

关于locking - memcached 可以用来加锁吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37458587/

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