[转帖]Redis是的缓存特征及类型

redis,缓存,特征,类型 · 浏览次数 : 0

小编点评

**缓存特征** * 不同的层之间的访问速度不同,需要缓存。 * 缓存可以把一些需要频繁访问的数据放在缓存中,以加快它们的访问速度。 **缓存处理请求的两种情况** **缓存命中** * 缓存中存在相应数据,就直接读取 Redis。 **缓存缺失** * 缓存中没有保存相应数据,就从后端数据库中读取数据。 * 缓存更新:一旦发生缓存缺失,为了让后续请求能从缓存中读取到数据,我们需要把缺失的 数据写入 Redis,这个过程叫作缓存更新。 **缓存的类型** * **只读缓存**直接在数据库中更新数据的好处是,所有最新的数据都在数据库中,而数据库是提供数据可靠性保障的,这些数据不会有丢失的风险。 * **读写缓存** 同步直写是指,写请求发给缓存的同时,也会发给后端数据库进行处理,等到缓存和数据 库都写完数据,才给客户端返回。

正文

缓存特征

一个系统中的不同层之间的访问速度不一样,所以我们才需要缓存,这样就可以把一些需要频繁访问的数据放在缓存中,以加快它们的访问速度。

计算机系统中的三层存储结构,以及它们各自的常用容量和访问性能
在这里插入图片描述
计算机系统中,默认有两种缓存:

  • CPU 里面的末级缓存,即 LLC,用来缓存内存中的数据,避免每次从内存中存取数据;
  • 内存中的高速页缓存,即 page cache,用来缓存磁盘中的数据,避免每次从磁盘中存取数据。

在这里插入图片描述
两个特征

  • 在一个层次化的系统中,缓存一定是一个快速子系统,数据存在缓存中时,能避免每次从慢速子系统中存取数据。
  • 缓存系统的容量大小总是小于后端慢速系统的,我们不可能把所有数据都放在缓存系统中。

缓存处理请求的两种情况

  • 缓存命中:Redis 中有相应数据,就直接读取 Redis,性能非常快。
  • 缓存缺失:Redis 中没有保存相应数据,就从后端数据库中读取数据,性能就会变慢。 而且,一旦发生缓存缺失,为了让后续请求能从缓存中读取到数据,我们需要把缺失的 数据写入 Redis,这个过程叫作缓存更新。

在这里插入图片描述

缓存的类型

只读缓存

在这里插入图片描述

只读缓存直接在数据库中更新数据的好处是,所有最新的数据都在数据库中,而数据库是
提供数据可靠性保障的,这些数据不会有丢失的风险。当我们需要缓存图片、短视频这些
用户只读的数据时,就可以使用只读缓存这个类型了。

读写缓存

在这里插入图片描述

  • 同步直写是指,写请求发给缓存的同时,也会发给后端数据库进行处理,等到缓存和数据
    库都写完数据,才给客户端返回。这样,即使缓存宕机或发生故障,最新的数据仍然保存
    在数据库中,这就提供了数据可靠性保证。

  • 异步写回策略,则是优先考虑了响应延迟。此时,所有写请求都先在缓存中处理。等到
    这些增改的数据要被从缓存中淘汰出来时,缓存将它们写回后端数据库。这样一来,处理
    这些数据的操作是在缓存中进行的,很快就能完成。只不过,如果发生了掉电,而它们还
    没有被写回数据库,就会有丢失的风险了。不过,同步直写会降低缓存的访问性能,这就增加了缓存的响应延迟。

同步直写模式侧重于保证数据可靠性,而异步写回模式 则侧重于提供低延迟访问

关于是选择只读缓存,还是读写缓存,主要看我们对写请求是否有加速的需求。

  • 如果需要对写请求进行加速,我们选择读写缓存;
  • 如果写请求很少,或者是只需要提升读请求的响应速度的话,我们选择只读缓存。
</article>

与[转帖]Redis是的缓存特征及类型相似的内容:

[转帖]Redis是的缓存特征及类型

文章目录 缓存特征缓存处理请求的两种情况缓存的类型只读缓存读写缓存 缓存特征 一个系统中的不同层之间的访问速度不一样,所以我们才需要缓存,这样就可以把一些需要频繁访问的数据放在缓存中,以加快它们的访问速度。 计算机系统中的三层存储结构,以及它们各自的常用容量和访问性能 计算机系统中,默认有两种缓存:

[转帖]Redis由浅入深深深深深剖析

https://juejin.cn/post/6844903943688945677 前言 常用的SQL数据库的数据都是存在磁盘中的,虽然在数据库底层也做了对应的缓存来减少数据库的IO压力,但由于数据库的缓存一般是针对查询的内容,而且粒度也比较小,一般只有表中的数据没有发生变动的时候,数据库的缓存才

[转帖]Redis学习五(Spring Cache For Redis).

https://www.cnblogs.com/jmcui/p/8410560.html 一、概述 缓存(Caching)可以存储经常会用到的信息,这样每次需要的时候,这些信息都是立即可用的。 常用的缓存数据库: Redis 使用内存存储(in-memory)的非关系数据库,字符串、列表、集合、散列

[转帖]Redis的高并发及高可用,到底该如何保证?

https://zhuanlan.zhihu.com/p/404481762 一、redis如何通过读写分享来承载读请求QPS超过10万+ 1、redis高并发跟整个系统的高并发之间的关系 redis,你要搞高并发的话,不可避免,要把底层的缓存搞得很好 mysql,高并发,做到了,那么也是通过一系列

[转帖]Redis集群实例内存使用率飙升排查

在一个阳光明媚的下午,突然生产环境有一个缓存实例发出内存使用率超过90%的告警,然后立刻和小伙伴们一起看是什么情况。 现象是这样的,集群里的一个实例的内存使用率超过了90%,而这个实例的从节点,内存使用率却很低。而且其他分片的内存使用率都很低,只有这个分片高。见下图cachecloud实例状态图。

[转帖]K8S部署Redis Cluster集群(三主三从模式) - 部署笔记

https://www.cnblogs.com/cheyunhua/p/15619317.html 一、Redis 介绍 Redis代表REmote DIctionary Server是一种开源的内存中数据存储,通常用作数据库,缓存或消息代理。它可以存储和操作高级数据类型,例如列表,地图,集合和排序

[转帖]看看 Jmeter 是如何玩转 redis 数据库的

柠檬小欧 2021-08-31 20:06420 Jmeter 作为当前非常受欢迎的接口测试和性能测试的工具,在企业中得到非常广泛的使用,而 Redis 作为缓存数据库,也在企业中得到普遍使用,那如何使用 jmeter 来测试 Redis 数据库呢?今天我们就来讲一讲怎么使用 jmeter 来调用

[转帖]庐山真面目之十三微服务架构中如何在Docker上使用Redis缓存

https://www.cnblogs.com/PatrickLiu/p/14518160.html 一、介绍 1、开始说明 在微服务器架构中,有一个组件是不能少的,那就是缓存组件。其实来说,缓存组件,这个叫法不是完全正确,因为除了缓存功能,它还能完成其他很多功能。我就不隐瞒了,今天我们要探讨的就是

[转帖]一张图搞定redis内存优化及配置

https://www.jianshu.com/p/3195663af83e Redis内存优化及配置.png Redis优化及配置 Redis所有的数据都在内存中,而内存又是非常宝贵的资源。常用的内存优化方案有如下几部分:一、配置优化二、缩减键值对象三、命令处理四、缓存淘汰方案 一、配置优化 Li

[转帖]Redis学习笔记--Redis数据过期策略详解

本文对Redis的过期机制简单的讲解一下 讲解之前我们先抛出一个问题,我们知道很多时候服务器经常会用到redis作为缓存,有很多数据都是临时缓存一下,可能用过之后很久都不会再用到了(比如暂存session,又或者只存放日行情股票数据)那么就会出现一下几个问题了 Redis会自己回收清理不用的数据吗?