【问题标题】:GAE memcache api not able to store memcache key and namespace as integerGAE memcache api 无法将 memcache 键和命名空间存储为整数
【发布时间】:2018-10-03 02:13:43
【问题描述】:

我使用flask 框架创建了一个基本的python web 应用程序并将其部署在google 应用程序引擎上。所以我使用 GAE memcache API 存储 JSON 数据,密钥和命名空间为整数类型,并且在本地工作,但是一旦我将代码部署到应用程序引擎,它就会抛出错误 at least one of key or namespace should be <type> string。 我将我的 memcache 键和命名空间更改为字符串类型,它可以工作。有人可以帮我理解为什么它在本地支持整数作为键和命名空间,但是一旦部署它就会失败。是bug吗?

【问题讨论】:

  • 也许,有时沙盒的行为有点不同

标签: python google-app-engine flask memcached


【解决方案1】:

来自google.appengine.api.memcache package

任何采用“key”参数的方法都将接受该键作为 字符串(unicode 与否)或 (hash_value, string) 的元组,其中 hash_value,通常用于分片到内存缓存实例,是 而是忽略,因为 Google App Engine 处理分片 透明地。 memcache 中的键只是字节,没有指定 编码。如果提供了伪造的密钥,所有此类方法都可能引发 TypeError value 和 ValueError 如果 key 太大。

本地开发服务器仅尝试模拟实际的 GAE 基础架构。功能的某些方面没有完全模拟,有些根本没有模拟 - 你提到的不是唯一的。在实际部署中仔细检查您的假设总是一个好主意,至少不时,特别是在探索新的 GAE 功能时,以防止在您的应用程序的基础中包含错误的假设,这将需要在以后进行大量的重新工作。去过那里,做到了:)

【讨论】:

    猜你喜欢
    • 2012-12-03
    • 1970-01-01
    • 2011-12-26
    • 1970-01-01
    • 2013-03-06
    • 1970-01-01
    • 2017-05-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多