为什么Django数据库缓存不能跨多个线程共享?

时间:2016-09-22 17:40:15

标签: django django-caching

似乎每个线程都维护着它独立的缓存。我应该只使用自己的Django对象来拥有多个线程共享的数据库缓存吗?这样做有什么负面影响?

我面临的问题是:

  1. 我正在使用数据库缓存
  2. 我在处理请求时保存到缓存
  3. 我在处理下一个请求时从缓存中检索
  4. 我希望它在缓存中,但它不在那里。通过打印线程标识,我看到它是一个不同的线程。同一个线程获得缓存命中,但另一个线程获得缓存未命中。

    我不希望数据库缓存后端发生这种情况。

1 个答案:

答案 0 :(得分:0)

仅当您使用locmem缓存后端时才会这样。你不应该在生产中做什么;使用适当的缓存,无论是文件系统还是数据库缓存,还是像memcached或redis这样的专用缓存后端。