一个django 网站 比如 著名的 disqus 它是如何支持 两个亿的月活
于2007年 创办 第三方社会化评论系统 为网站提供评论托管服务
中国目前有 多说 友言 评论啦 与之相似。
1.缓存为什么要存在
因为 用户量的增加 所做的计算越来越多 但是 应用服务器资源是有限的 数据库每秒接受请求的次数也是有限的
如何解决
减少计算量 缩短请求流程(减少网络io或者硬盘io) 在标准的流程中 任何一个环节都可以被切断, 这样请求可以直接从缓存里取到数据直接返回
2.缓存存在于哪些地方
理论上来说 缓存可以存在于请求的任意一个环节
根据数据的变化特征 将数据特征总结为一段时间内变或者不变
3.缓存的属性
- 命中率
- 最大元素(可以存放的最大元素的个数)
- 清空策略(FIFO LRU)
4.缓存介质
- 内存
- 硬盘文件
- 数据库
根据缓存和应用的耦合程度划分为本地和远程缓存
本地有ehcache oscache
远程有 memcached
缓存的使用是架构师的必备技能 根据数据的类型,业务的场景来确定使用何种类型的缓存。
但是没有一种缓存可以解决任何的业务场景或者数据类型,每种都各有优缺点!