- 1、本文档共15页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
田然 - 多层缓存系统在唱吧的实践经验
快一点,再快一点 !
多层缓存系统在唱吧的实践经验
唱吧 田然
怎么做一个够爽的App ?
• 时间碎片化
– 更高的速度要求
• 网络不稳定
– 更差的网络条件
– 甚至没有网络的情况下也要能访问
• 网络流量要求严格
天下武功,唯快不破
缓存系统
• Cache
– 与其叫缓存,不如叫快取 (信、达、雅)
• 一种实现方式,不是硬件设备
App时代的缓存
• 客户端缓存
– 内存缓存
– 文件缓存 客户端
– 网络请求缓存
• 服务器端缓存
– Memcache
– Redis
– 跨数据中心
• CDN IDC CDN
– 选择、优化
– 上云?
客户端缓存(1 )
• 内存缓存
– iOS
• NSCache
– Android
• LRU Cache 限制可用内存比例
• 特殊机型需要定制策略,例如更改图片分辨率,限制缓存页面层数
• 文件缓存 请求本地内存
– 网络下载过的文本、图片、音频等
– 加快加载速度、减少网络流量 请求本地磁盘
请求网络
客户端缓存(2 )
• 网络请求缓存
– /ktv.php?action=gethottestuserwork
– md5(uri), serialized result (json/xml)
– type, md5(uri), serialized result
– type, md5(uri), serialized result, 30s
– type, md5(uri), serialized result, 60s, 7day
• 针对应用特征定制不同级别不同缓存空间的策略
占用内存 占用磁盘 过期时间
App页面 较大 无 App生命周期
图片 大 小 长(天为周期)
音频 无 大 长(不过期)
网络请求 很小 小 特殊,通常较短
• 在客户端预留各个级别的缓存清理接口
服务器端缓存(1 )
1000万安装量
100万日活跃用户
5万峰值同时在线
每秒5000次网络请求
• 2000次请求全局数据
• 2000次请求一般局部数据
• 1000次其他请求
服务器端缓存 (2 )
罗列一堆数字
• 内存寻址 0.1微秒
• 压缩1KB数据 10微秒
• 千兆网内发送2Kb的数据 20微秒
• 内存中顺序读1 MB 0.25毫秒
• Disk seek 8毫秒 ~ 12毫秒
• 从网络顺序读1MB数据 10毫秒
以下为不负责任的数字
• Mysql每秒能处理的普通query数 1k
• Nginx 每秒能处理的普通qu
文档评论(0)