美文网首页
后端存储11(Redis缓存)

后端存储11(Redis缓存)

作者: 兮兮码字的地方 | 来源:发表于2020-10-09 21:13 被阅读0次

Redis使用的注意事项

Redis 是一个使用内存保存数据的高性能 KV 数据库,它的高性能主要来自于:

1.简单的数据结构;

2.使用内存存储数据。

数据库可以分为执行器和存储引擎两部分,Redis 的执行器这一层非常的薄,所以 Redis 只能支持有限的几个 API,几乎没有聚合查询的能力,也不支持 SQL。它的存储引擎也非常简单,直接在内存中用最简单的数据结构来保存数据(Redis 的 LIST 在存储引擎的内存中的数据结构就是一个双向链表)。

Redis 牺牲了大部分功能,牺牲了数据可靠性,换取了高性能。

1,虽然说,Redis 支持将数据持久化到磁盘中,并且还支持主从复制,但,Redis 仍然是一个不可靠的存储,它在设计上天然就不保证数据的可靠性,所以一般我们都使用 Redis 做缓存,很少使用它作为唯一的数据存储。,

2,经典的缓存更新策略: Read/Write Through(先更新数据库再更新缓存),在并发的情况下,有一定的概率会出现“缓存的脏数据”问题,缓存中的数据可能会被错误地更新成了旧数据。(两个并发的写和读请求或另个并发的写请求,由于未按照预想的顺序执行,造成写入了脏数据)

3,Cache Aside(先更新数据库再删除缓存) 模式可以很好地解决这个问题,在大多数情况下是使用缓存的最佳方式(待深入研究)。,

4,缓存穿透指的是,在读数据的时候,没有命中缓存,请求“穿透”了缓存,直接访问后端数据库的情况。

我们需要预防的是,短时间内大量的请求无法命中缓存,请求穿透到数据库,导致数据库繁忙,请求超时。大量的请求超时还会引发更多的重试请求,更多的重试请求让数据库更加繁忙,这样恶性循环导致系统雪崩。

5,当发生缓存穿透时,如果从数据库中读取数据的时间比较长,也容易引起数据库雪崩。

6,为了避免雪崩,可以采用灰度发布的方式,先接入少量请求,再逐步增加系统的请求数量,直到全部请求都切换完成。如果系统不能采用灰度发布的方式,那就需要在系统启动的时候对缓存进行预热。

相关文章

  • 后端存储11(Redis缓存)

    Redis使用的注意事项 Redis 是一个使用内存保存数据的高性能 KV 数据库,它的高性能主要来自于: 1.简...

  • 讲解分布式系统中常用的缓存应用

    缓存是分布式系统开发中的常见技术,在分布式系统中的缓存,不止 Redis、Memcached 等后端存储;在前端页...

  • redis操作手册

    什么是redis? 1、Redis 缓存是基于 key - value 存储的内存缓存;2、提供list、set、...

  • Redis使用场景介绍、分析

    Redis使用场景 1、会话缓存用Redis缓存会话比其他存储(如Memcached)的优势在于:Redis提供持...

  • Java面试——Redis和缓存

    参考资料: Redis的存储类型及底层实现 ?? Redis持久化数据和缓存怎么做扩容? 如果Redis被当做缓存...

  • django-settings里redis连接与缓存配置

    Django-redis的缓存配置 配置session存储

  • Redis-AOF

    Redis最普遍的使用场景便是当作缓存使用,因为它把后端数据库中的数据存储在内存中,然后直接从内存中读取数据,响应...

  • Redis缓存应用基础

    Redis缓存应用基础 1、Redis简介 Redis是一个key-value存储系统。和Memcached类似,...

  • 基于indexDB的前端优化缓存方案

    缓存作为一种非常常见的优化手段,不管是前端还是后端都能够经常用到,后端的缓存方案, 就是redis、memcach...

  • ReactNative 项目--仿Reddit

    源码地址请戳 github 基本技术栈:   后端:nodejs  数据库:mongodb  缓存:redis  ...

网友评论

      本文标题:后端存储11(Redis缓存)

      本文链接:https://www.haomeiwen.com/subject/yaamuktx.html