缓存不经常更改的统计信息的最佳方法

时间:2014-11-27 17:01:50

标签: django django-admin

我正在编写一个django应用程序,作为工作的一部分,我需要处理一些数据并生成统计信息并在RESTful API上提供它们。统计数据通常不会发生变化,但是当统计数据发生变化时,下一个请求需要提供最新的请求。我目前正在做的是使用像django-redis这样的缓存机制来存储统计信息,并且在发出请求时,视图会调用缓存客户端并提供其内容。我更喜欢的是一种缓存机制,它阻止我的视图被调用,并提供最新的内容。是否有这样的(django插件)允许我这样做?

1 个答案:

答案 0 :(得分:0)

实现此目的的一种方法是使用“反向代理缓存”,例如Nginx或Varnish。

基本上,当您向Django应用程序发出请求时,它将首先通过您的代理缓存。代理缓存将检查请求是否在缓存中可用,如果是,它将提供缓存的响应。如果请求不在缓存中,它会将请求移交给django以处理te请求并发出响应。然后,响应将通过代理缓存传回,并将响应的内容设置为缓存,以便后续请求使用缓存中的响应。

根据写入策略使缓存中的项失效,因为更新数据库中的项可以通过发出特定于已安装的反向代理缓存服务器的缓存清除命令来完成。