auto commit
This commit is contained in:
@ -193,15 +193,14 @@ public class LRU<K, V> implements Iterable<K> {
|
||||
|
||||
MySQL 等数据库管理系统具有自己的查询缓存机制来提高查询效率。
|
||||
|
||||
## Java 内部的缓存
|
||||
## Java 内部的缓存
|
||||
|
||||
Java 为了优化空间,提高字符串、基本数据类型包装类的创建效率,设计了字符串常量池及 Byte、Short、Character、Integer、Long、Boolean 这六种包装类缓冲池。
|
||||
|
||||
## CPU 多级缓存
|
||||
## CPU 多级缓存
|
||||
|
||||
CPU 为了解决运算速度与主存 IO 速度不匹配的问题,引入了多级缓存结构,同时使用 MESI 等缓存一致性协议来解决多核 CPU 缓存数据一致性的问题。
|
||||
|
||||
|
||||
# 四、CDN
|
||||
|
||||
内容分发网络(Content distribution network,CDN)是一种互连的网络系统,它利用更靠近用户的服务器从而更快更可靠地将 HTML、CSS、JavaScript、音乐、图片、视频等静态资源分发给用户。
|
||||
@ -237,6 +236,7 @@ CDN 主要有以下优点:
|
||||
- 为了防止缓存服务器宕机出现的缓存雪崩,可以使用分布式缓存,分布式缓存中每一个节点只缓存部分的数据,当某个节点宕机时可以保证其它节点的缓存仍然可用。
|
||||
- 也可以进行缓存预热,避免在系统刚启动不久由于还未将大量数据进行缓存而导致缓存雪崩。
|
||||
|
||||
|
||||
## 缓存一致性
|
||||
|
||||
缓存一致性要求数据更新的同时缓存数据也能够实时更新。
|
||||
@ -248,20 +248,17 @@ CDN 主要有以下优点:
|
||||
|
||||
要保证缓存一致性需要付出很大的代价,缓存数据最好是那些对一致性要求不高的数据,允许缓存数据存在一些脏数据。
|
||||
|
||||
## 缓存“无底洞”现象
|
||||
## 缓存 “无底洞” 现象
|
||||
|
||||
指的是为了满足业务要求添加了大量缓存节点, 但是性能不但没有好转反而下降了的现象。
|
||||
指的是为了满足业务要求添加了大量缓存节点,但是性能不但没有好转反而下降了的现象。
|
||||
|
||||
产生原因:缓存系统通常采用 hash 函数将 key 映射到对应的缓存节点,随着缓存节点数目的增加,键值分布到更多的节点上,导致客户端一次批量操作会涉及多次网络操作,这意味着批量操作的耗时会随
|
||||
着节点数目的增加而不断增大。此外,网络连接数变多,对节点的性能也有一定影响。
|
||||
产生原因:缓存系统通常采用 hash 函数将 key 映射到对应的缓存节点,随着缓存节点数目的增加,键值分布到更多的节点上,导致客户端一次批量操作会涉及多次网络操作,这意味着批量操作的耗时会随着节点数目的增加而不断增大。此外,网络连接数变多,对节点的性能也有一定影响。
|
||||
|
||||
解决方案:
|
||||
|
||||
- 优化批量数据操作命令;
|
||||
- 减少网络通信次数;
|
||||
- 降低接入成本,使用长连/连接池,NIO 等。
|
||||
|
||||
|
||||
- 降低接入成本,使用长连接 / 连接池,NIO 等。
|
||||
|
||||
# 六、数据分布
|
||||
|
||||
|
Reference in New Issue
Block a user