Fork me on GitHub

缓存

缓存通过存储预先计算常用操的作结果并将预计算的答案发送给客户端的方式来降低服务器负载。

例如,相对于从数据库表中获取不怎么变化的数据,你可以将那些值存在在内存中。从内存中获取值要远比从数据库(它将数据存储在永久存储器中,例如一块硬盘)中获取它们快得多。当缓存的值发生变化后,系统就会让缓存失效,并重新获取更新后的值以便后期请求。

堆栈中多个层都可以创建缓存。

缓存后端

  • memcached 是一种常见的内存缓存系统。

  • Redis 是一种基于键值的内存数据存储区,它可以轻易地与诸如 django-redis-cache 之类的库一起配置用于缓存。

缓存相关资源

  • "缓存:Varnish 或者 Nginx?" 回顾了当选择反向代理 Niginx 或者 Varnish 时,需要考虑的一些诸如 SSL 和 SPDY 支持的问题。

  • 缓存难懂,给我画幅图片 有一些图说明了 web 请求缓存层是如何工作的。这篇文章还是值得一读的,尽管作者在描述他的微软代码是他写作的动力。

  • 虽然缓存在很多情况下都是非常有用的,但非常值得关注的是, 缓存也是有缺点的,所以很多开发者才没有考虑使用它。

缓存学习清单

  1. 分析你的 web 应用中运行最缓慢的部分。可能情况是,有些复杂的数据库查询可以预先计算并存储在内存中。

  2. 确保让你的内存数据存储区已经用于会话数据,从而缓存那些复杂数据库查询的结果。一个 任务队列 通常可以用于定期计算结果,并将它们存放到数据存储区。

  3. 采用一种缓存失效机制,从而使得给用户发送的预先计算的结果保持准确。

接下来你想为你的部署学习什么呢?

如何在 HTTP 请求应答流程之外执行代码?

我想学习如何通过 Web 分析来了解用户的更多知识。

我能做些什么来减少我的 web 应用安全漏洞?

在这里注册以便每月能收到一份邮件资料,内容包含本站的主要更新、教程和 Python 书籍的打折码等。