【问题标题】:Getting 'TooBig' Memcachier exception on a Django Rest Framework response on Heroku在 Heroku 上的 Django Rest Framework 响应中获取“TooBig”Memcachier 异常
【发布时间】:2018-04-10 10:08:25
【问题描述】:

我在 Heroku 上有一个 Django 站点,它使用 Memcachier 的免费层作为整个站点的基本缓存。它工作正常。

我刚刚开始尝试使用 Django Rest Framework 创建一个只读 JSON API,它也可以正常工作,除了...一个或多个 API URL 会从 Memcachier 生成“TooBig”异常,即使响应是'不是很大(例如 20-30 KB):

MemcachedError: 

TooBig
No exception message supplied

鉴于体积小,我不知道为什么会发生这种情况,并且不知道如何解决它。也许我误解了 memcached 的工作原理。

【问题讨论】:

  • 你在使用 pylibmc 吗?在 pylibmc 中,这意味着值太大(>1MB)。见herehere
  • @SaschaTrifunovic 我是,但我不知道为什么当响应如此之小时会发生该错误。
  • 小回复是什么意思?此错误发生在 set 命令期间,即当您尝试将值存储在 memcached 中时,而不是当您 get 时(因为您的 MemCachier 缓存中没有 >1MB 的值)。您确定要存储的键+值小于 1MB?
  • @SaschaTrifunovic 也许我误解了它的工作原理!我假设,因为当浏览器请求时被缓存的“页面”非常小(我刚刚尝试了一个会产生错误的页面,它是 5.39 KB 的 HTML),所以在发送到缓存时它不能大于 1MB .
  • 只是为了确保我理解:您请求一个页面(通过浏览器),这会导致此错误出现在服务器上。如果这是正确的,并且您正在缓存的呈现的 HTML 确实像您所说的那样小,那么请求您的页面会导致 Django 在 memcached 中存储太大的其他内容。会这样吗?

标签: django heroku django-rest-framework memcached


【解决方案1】:
猜你喜欢
  • 2014-04-27
  • 2019-08-25
  • 2013-07-13
  • 1970-01-01
  • 2022-11-01
  • 2013-04-09
  • 1970-01-01
  • 2015-12-17
  • 1970-01-01
相关资源
最近更新 更多