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