单机缓存_缓存的一些基本常识

本文介绍了缓存的基本概念,包括缓存命中与未命中,以及常见的缓存算法如LRU和FIFO。还讨论了不同类型的缓存,如本地缓存、独立式、单机和分布式缓存,以及它们的特性,如一致性、扩容方式和高可用性。此外,提到了数据层访问速度的重要性,并简述了缓存的写入策略和阿姆达尔定律。
摘要由CSDN通过智能技术生成

转载请注明出处哈:http://carlosfu.iteye.com/blog/2269678


一、基本概念

1. Cache(缓存): 从cpu的一级和二级缓存、Internet的DNS、到浏览器缓存都可以看做是一种缓存。

维基百科: 写道

a store of things that will be required in the future, and can be retrieved rapidly.

(存贮数据(使用频繁的数据)的临时地方,因为取原始数据的代价太大了,所以我可以取得快一些)

fe59a7466d7bebd6e18c1bd25934ae47.png

2. Cache hit(缓存命中)(下图左)

When a data element is requested from cache and the elements exists for the given key.

3. Cahe miss(缓存未命中): 与Cache hit相反(下图右)

edea305b013a1a3514a6b619fa70f722.png

4. 缓存算法:缓存容量超过预设,如何踢掉“无用”的数据。

例如:LRU(Least Recently Used) FIFO(First Input First Output)Least Frequently Used(LFU) 等等

5. System-of-Record(真实数据源): 例如关系型数据库、其他持久性系统等等。

也有英文书叫做authority data(权威数据)

6. serialization-and-deserialization(序列化与反序列化):可以参考:序列化与反序列化(美团工程师写的,非常棒的文章)

后面也有单独文章去分析。

512252096eb91165b134938ea41eb0e1.png

6. Scale Up (垂直扩容) 和 Scale out (水平扩容)

驴拉车,通常不是把一头驴养壮(有极限),而通常是一群驴去拉(当然每个个体也不能太差)。

552d43781fc20b05857f3f8df65c455d.png

服务器也是一样的道理,至少互联网是这样:

fa1602746038e269d4e04328f23526f0.png

7. Write-through 和 write-behind

a5eb10fc39706c4b5c53f25cb4d313dd.png

74ab54cb19366cc6adb352c3fe52a249.png

8.阿姆而达定律:用于计算缓存加速比

二、缓存的种类或者类型

1. LocalCache(独立式): 例如Ehcache、BigMemory Go

(1) 缓存和应用在一个JVM中。

(2) 缓存间是不通信的,独立的。

(3) 弱一致性。

fd979194fb1243b1ea3f1841aa97439f.png

2. Standalone(单机):

(1) 缓存和应用是独立部署的。

(2) 缓存可以是单台。(例如memcache/redis单机等等)

(3) 强一致性

(4) 无高可用、无分布式。

(5) 跨进程、跨网络

72dc5b8cba6ca52620ec8ee82de38aeb.png

3. Distributed(分布式):例如Redis-Cluster, memcache集群等等

(1) 缓存和应用是独立部署的。

(2) 多个实例。(例如memcache/redis等等)

(3) 强一致性或者最终一致性

(4) 支持Scale Out、高可用。

(5) 跨进程、跨网络

7f8f329639180131d17626a6b7c93be7.png

4. Replicated(复制式): 缓存数据时同时存放在多个应用节点的,数据复制和失效的事件以同步或者异步的形式在各个集群节点间传播。(也是弱一致性)

这种用的不太多。

三、数据层访问速度:(作为开发人员要记住这些量级)

d6798373b46d56705e56f689dd00eb0a.png
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值