分布式缓存 - 第五周总结
1、什么是缓存
缓存是介于数据访问者和数据源之间的一种高速存储,当数据用于多次读取的时候,用于加速读取的速度
2、常用缓存
CDN 缓存
反向代理缓存
前端缓存
应用程序缓存
分布式对象缓存
3、常用的分布式缓存算法
hash 取模
一致性hash
4、缓存命中率
影响缓存命中率的因素一帮有两种,一种是要查询的缓存key值不存在,二种是要查询的key值已失效,不管是哪种都有可能产生大量的读请求与后端数据库,导致数据库压力过大而不能及时响应,整个系统瘫痪。所以要避免缓存失效、击穿对后所以请求到达数据库中,简单的做法是,再请求数据库前加一个分布式事务所,保证请求同一数据资源只有一个请求能向后端数据库请求数据,这样就减轻数据库压力,遇到本身请求数据为空也应当存入缓存中,来避免重复请求不存在的数据也要向数据库进行数据请求。
5、mysql复制
mysql复制有:主从复制、主主复制两种
mysql常用的集群架构有:MMM、MHA
这些技术核心用到的是binglog日志
binlog的格式也有三种:STATEMENT、ROW、MIXED
STATEMENT:存储执行的sql语句
ROW:存储每一行的具体数据
MIXED:以上两种都有,比如sql语句中含有'NOW()'这种不确定的结果时则采用STATEMENT格式
binglog不仅能够实现mysql体系下的复制,还能解析binglog同步至其他数据库中,比如Elasticsearch,用于搜索引擎的构建。
评论