python - 使用 memcache.gets() 时出现 AttributeError

标签 python google-app-engine memcached

我正在尝试将 memcached 与 Google App Engine 结合使用。我使用导入库

从 google.appengine.api 导入内存缓存

然后使用

调用它

posts = memcache.gets("posts")

然后我收到以下错误: AttributeError:“模块”对象没有属性“gets”

我浏览了有关 memcache 的 Google App Engine 文档,但找不到任何使用 memcache.gets() 的示例。 Memcache.get() 似乎是按照我上面调用 gets 的方式使用的。

最佳答案

getsmemcache 客户端对象的方法,不是memcache 的模块级函数。模块级功能非常简单、无状态、同步;使用客户端对象,如果需要的话,您可以做更高级的事情,如 https://cloud.google.com/appengine/docs/python/memcache/clientclass 中所述。 .

具体来说,根据 https://cloud.google.com/appengine/docs/python/memcache/clientclass#Client_gets 的文档,“如果您想避免两个或多个调用者尝试同时修改相同键值的情况,则使用“gets”而不是get,从而导致到不希望的覆盖。”因为 gets 还获取(并存储在客户端对象中)cas_id,它允许您使用 cas (比较和设置)调用(您不必自己显式处理 cas_id)。

由于您似乎没有尝试比较和设置操作,因此我建议使用更简单的模块级函数 get,而不是实例化客户端对象并使用其实例方法获取

关于python - 使用 memcache.gets() 时出现 AttributeError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27783240/

相关文章:

python - 在 pandas 数据框中添加具有相同列值的行

python - GAE Django 交易

python - 为什么 lxml.etree.iterparse() 会占用我所有的内存?

python - Google App Engine - 如何获取所有应用程序管理员的列表?

python - 更快的 App Engine 开发数据存储替代方案

mysql - 浏览数据库记录的最佳且最快的方法

caching - Redis用于缓存图像文件?

memcached - Memcached 和 Hadoop 之间的区别?

python - 如何使用 numpy 创建这个表格数据结构?

python - 如何在 SQLAlchemy 中的 JSON PostgreSQL 列的嵌套键上创建索引?