【问题标题】:Django: caching imagesDjango:缓存图像
【发布时间】:2016-10-23 09:53:45
【问题描述】:

我目前正在使用django-compressor,它通过缓存压缩的 CSS 和 JS 文件提供了很大的好处。

现在我想缓存图像。我知道可以使用 HTTP 标头(下游缓存)启用浏览器缓存,但我想在这里使用 Redis(它已被 django-compressor 使用)。

所以这是我的第一个问题:用 Redis 缓存图片是否正确?

我通过缩略图模板标签阅读了有关sorl-thumbnail 及其缓存的有趣内容。我想也许我可以以原始方式使用它,但标签需要几何参数。

是否有可以用来缓存图像的现有 Django 包?我是否应该编写一个类似于 sorl-thumbnail 的缩略图标签的模板标签以使用 Django's built-in cache 启用图像缓存?

【问题讨论】:

  • 不确定我是否理解您的问题。你说的“对不对”是什么意思?你想做什么样的缓存——你的意思是从内存而不是从磁盘读取图像?
  • 是的,我想从内存中读取图像。有很多关于下游缓存的资源,但我没有发现任何关于 Redis 内存缓存的有趣内容......
  • “所以这是我的第一个问题:使用 Redis 缓存图像是否正确?”没有
  • 缓存通常用于昂贵(处理器)操作的输出。从磁盘读取图像并不昂贵。为什么要将其缓存在内存中?
  • +1 在 Varnish 上适用于许多有用的案例。 Redis 在某些情况下可能是合适的,只是在您的情况下看不到需要 - 操作系统自己进行磁盘缓存,除非您确切知道为什么需要缓存,否则您可能不需要。

标签: django image caching redis


【解决方案1】:

这不是 redis 的工作,也不是 django 的好用例。如果您想在内存中缓存图像以从服务器提供服务,请在您的 django 应用程序服务器(如 uwsgi 或 gunicorn)和 nginx 前面,并使用 varnish 将图像缓存在内存中。 Redis 不适合存储/检索大型 Blob。

【讨论】:

猜你喜欢
  • 2016-02-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-08-18
  • 1970-01-01
  • 2013-10-24
  • 2014-03-17
  • 2010-12-29
相关资源
最近更新 更多