本文共 695 字,大约阅读时间需要 2 分钟。
在动态网站中,用户所有的请求,服务器都会去数据库中进行相应的增,删,查,改,渲染模板,执行业务逻辑,最后生成用户看到的页面.
当一个网站的用户访问量很大的时候,每一次的的后台操作,都会消耗很多的服务端资源,所以必须使用缓存来减轻后端服务器的压力.
缓存是将一些常用的数据保存内存或者memcache中,在一定的时间内有人来访问这些数据时,则不再去执行数据库及渲染等操作,而是直接从内存或memcache的缓存中去取得数据,然后返回给用户.
Django提供了6种缓存方式
开发调试缓存
内存缓存文件缓存数据库缓存Memcache缓存(使用python-memcached模块)Memcache缓存(使用pylibmc模块)Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载从而显著提供网站性能,也是django中到目前为止最有效率的可用缓存。Memcached作为一个后台进程运行,并分配一个指定的内存量,它所做的全是提供一个添加,检索和删除缓存中任意数据的快速接口,所有的数据都是直接存储在内存中,所以就没有了数据库或者文件系统使用的额外开销了。
工作原理:(memcache使用了多线程机制,slab分配算法)
先检查客户端的请求数据是否在memcached中,如有,直接把请求数据返回,不再对数据库进行任何操作;如果请求的数据不在memcached中,就去查数据库,把从数据库中获取的数据返回给客户端,同时在 Memcached中存一份缓存。转载于:https://blog.51cto.com/13963860/2174476