《亿级流量网站架构核心技术》---高并发
2021-04-26 14:27
标签:避免 java对象 创建 距离 弱引用 least 应用 最好 java数据库 1、应用级缓存 1.1、缓存简介: 让数据 更 接近 使用者; 目的 让访问速度更快; 工作机制:从缓存读取数据,如果没有,再从慢速设备读取实际数据 并 同步到缓存; eg:CPU读取数据:CPU--->L1/L2/L3--->内存--->磁盘; maven: 本地仓--->中央仓--->远程仓; 1.2、缓存命中率: 从缓存读取次数 / 总读取次数(缓存+磁盘); 非常重要的监控指标,监控此指标看缓存是否工作良好; 1.3、缓存回收策略: a,基于空间 b,基于容量 c,基于时间 TTL(Time To Live):存活期,从创建开始 到 到期 的时间段; TTI(Time To Idle):空闲期,缓存多久没被访问 即失效; d,基于Java对象引用: a,软引用: b,弱引用: e,回收算法: 使用基于空间、容量的缓存 会使用一定的算法移除旧数据: FIFO:先进先出 LRU(Least Recently Used):使用距离现在最久的那个被移除; LFU(Least Frequently Used):使用频率最低的被移除; 1.4、Java缓存类型: 概述: Guava Cache: 只提供堆缓存,小巧灵活,性能最好; Ehcahe : 提供了 堆缓存、堆外缓存、磁盘缓存、分布式缓存; 缺陷:API不完善; Map DB: 嵌入式Java数据库引擎 和 集合框架; 提供了Maps、Sets、Lists、Queues、Bitmaps支持,还支持ACID事务、增量备份,支持堆缓存、堆外缓存、磁盘缓存; a, 堆缓存: 存储在堆内存种,避免序列化,可以使用Guava Cahce、Ehcache、Map DB实现; b, 堆外缓存: 存储在堆外内存,需要序列化,使用Ehcache、Map DB实现; c, 磁盘缓存: 存储在磁盘上,JVM重启数据还存在,可以使用Ehcache、Map DB实现; d, 分布式缓存: 以上为进程内缓存、磁盘缓存; 如果存在多JVM会有一些问题:单机容量、数据一致性、缓存命中率低; 可考虑使用分布式缓存实现:eg:redis实现分布式缓存: 《亿级流量网站架构核心技术》---高并发 标签:避免 java对象 创建 距离 弱引用 least 应用 最好 java数据库 原文地址:https://www.cnblogs.com/anpeiyong/p/12220804.html
上一篇:它的JS与HTML标签是分离的吗