Python 在django中使用缓存进行比较和设置
我看到一段视频,其中解释了多个用户同时覆盖缓存的问题。演讲者建议使用compare and set来解决这个问题() 他提到两种方法Python 在django中使用缓存进行比较和设置,python,django,google-app-engine,caching,Python,Django,Google App Engine,Caching,我看到一段视频,其中解释了多个用户同时覆盖缓存的问题。演讲者建议使用compare and set来解决这个问题() 他提到两种方法 gets(key) → value, unique cas(key, value, unique) → True/False from google.appengine.api import memcache val, unique = memcache.gets(key) r = memcache.cas(key, newval, unique) while
gets(key) → value, unique
cas(key, value, unique) → True/False
from google.appengine.api import memcache
val, unique = memcache.gets(key)
r = memcache.cas(key, newval, unique)
while r == False:
unique, val = memcache.gets(key)
r = memcache.cas(key, newval, unique)
类似的东西在django缓存中可用吗?或者这是特定的
googleappengine
。有人可以建议如何使用django缓存来实现这一点吗?如果您使用的是通用的django缓存框架,这是不可能的。如果您只使用MemCache,则包含您所需的所有内容
但是,请注意,虽然CAS解决了多个用户设置相同缓存值的问题,但这只是高流量环境中的一个问题。如果每月同时发生一次或两次缓存丢失和更新,您最好忽略CAS
如果缓存的值计算起来非常昂贵,您还可以考虑一个单独的后台任务来计算结果,将其存储在缓存中,并在缓存到期之前运行。在这种情况下,您的用户将永远不会遇到缓存丢失,整个CAS问题将变得无关紧要。您想解决什么问题?你应该在这里解释视频,并将其链接起来。极有可能你会在GAE和其他地方使用memcached,所以同样的功能也会可用,但是如果没有更多的信息,很难说。