缓存原理与设计框架
缓存(cache)介于速度相差较大的两个硬件之间,调解速度传输差异 --空间换时间
3W1h
内容
有效期
缓存方案 http缓存 app缓存 redis memcache……
更新机制 过期更新(有效期内一直使用缓存,超过有效期后重新读取 如http) 定期更新(定时更新缓存) 主动更新(当数据修改后主动更新缓存)
缓冲(buffer) 临时储存区域,保存一个到另个设备的数据
多级缓存架构
5级缓存架构(本地缓存、cdn、web容器、应用缓存、分布式缓存)
多级缓存架构核心
性能需求
架构复杂度
4级缓存架构(比5级去掉了CDN)
3级缓存架构(比4级去掉了 应用类缓存)
本地缓存
app
app将数据缓存到本地:sqlite、本地文件、本地图片(picasso、glide、fresco)
http
http标准协议缓存:参考http协议,cache-control、ifnonematch
cdn缓存-内容分发网络
各地的边缘服务器通过中心网络的算法使用户就近获取内容 提高响应速度和命中率
web容器缓存
一般缓存静态资源
应用缓存 应用在本地缓存的数据
进程缓存(threadlocal) concurrenthashmap、oscache、ehcachae、进程外缓存、堆外缓存、磁盘ssd缓存
分布式缓存 分布式系统提供的缓存功能
redis memcached
SSD为什么能缓存
随机读性能 微秒级,机械硬盘是毫秒级
redis&memcahed对比
高可用
r:集群分片、主备复制
m:一致性hash、重启丢数据
数据结构
r: Kv结构、五种数据结构
m:Kv结构、value无类型
性能:
r:(旧版本) 单核,小数据量读写效率高
m:多核,大数据量读写效率高
集群方案:
m:一致性hash、客户端算法实现
r:主备、集群、哨兵
并发方案:
r:(旧版本)单进程、epoll
m:多线程,libevent
持久化
r:rdb、aof
m:无
标签:缓存,http,多级,更新,本地,架构 From: https://www.cnblogs.com/windghost/p/16878003.html