前言
基于Redis的高性能特性,我们将Redis用在缓存场景非常广泛。使用起来方便,响应也是远超关系型数据库。
但我们用Redis做缓存时,也要注意各种问题的应对和措施,比如缓存失效、数据一致性问题等。因此,用redis做缓存需要熟悉这一套逻辑的工作原理、异常处理等。
缓存的工作机制
缓存的特征
说到redis适合做缓存,我们第一时间能想到的原因就是Redis基于内存,响应快。这个是对的,我们结合计算机三个存储介质的速度来看:
-
CPU:响应速度20-40ns,存储空间1-32MB;
-
内存:响应速度100ns,存储空间一般在16G-128GB之间;
-
磁盘:响应速度3-5ms,存储空间可达到4TB。
这个对比显而易见,响应速度上cpu > 内存 > 磁盘,存储空间上cpu < 内存 < 磁盘。综合起来看,内存是最适合作为缓存的,因为速度快,而空间也相对来说较大。
在计算机中,缓存有这2种:
-
cpu中的缓存:这是用来缓存内存数据的;
-
内存中的缓存:用来缓存磁盘中的数据。
最快的CPU,内存速度也不错,而磁盘是最慢的。如果我们要保证响应速度,就得避免即时从磁盘拉取数据了。
总结一下,缓存的特征就是响应快,避免每次从磁盘获取数据;缓存系统的空间容量比磁盘小,因此不能把所有数据都放缓存中。这也就是Redis作为缓存通常要配合存在磁盘的mysql工作的缘故。
Redis缓存的2种情况
我们用Redis做缓存时,业务数据通常在数据中(比如mysql)。当客户端要访问数据时,先从redis拉取缓存,这时就有2种情况了:
-
数据在缓存上: 也就是缓存命中,此时直接将缓存结果返回。
-
数据不在缓存上:也就是缓存未命中,这个时候就得从mysql来读取数据了,而响应速度自

本文探讨了Redis作为缓存的工作原理,包括其基于内存的高速响应和两种缓存情况。Redis缓存分为只读和读写两种模式,分别适用于不同场景。在使用Redis做缓存时,应注意缓存命中和未命中的处理策略,以及数据一致性问题。
最低0.47元/天 解锁文章
173万+

被折叠的 条评论
为什么被折叠?



