美文网首页
Redis读写缓存模式

Redis读写缓存模式

作者: 坤坤坤坤杨 | 来源:发表于2022-03-04 00:15 被阅读0次

1. Cache Aside Pattern(旁路缓存模式)

常用的缓存模式,适合读请求比较多的场景,同时维持缓存和数据库,以数据库结果为准
* 读过程:先从缓存中读数据,读不到从数据库中获取,然后把数据库读到的数据放入缓存中。
* 写过程:先更新数据库,后删除缓存。

先删除缓存,后更新数据库

是不可以的,会产生数据不一致的情况,如果有两个线程AB,线程A删除数据X的缓存值,还没有修改数据库,这时线程B去读缓存,没读到从数据中读取旧的X值,写入缓存中,这时候线程A更新数据库中X的值,这样就导致其他线程进来的时候读取到旧的值。

先更新数据库,后删除缓存

也会产生数据不一致,如果线程 A 删除了数据库中的值,但还没来得及删除缓存值,线程 B 就开始读取数据了,那么此时,线程 B 查询缓存时,发现缓存命中,就会直接从缓存中读取旧值。不过,在这种情况下,如果其他线程并发读缓存的请求不多,那么,就不会有很多请求读取到旧值。而且,线程 A 一般也会很快删除缓存值,这样一来,其他线程再次读取时,就会发生缓存缺失,进而从数据库中读取最新值。所以,这种情况对业务的影响较小。

2. Read/Write Throught(缓存穿透模式)

开发少见,应用层读写只需要操作缓存,不需要关心后端数据库。应用层在操作缓存时,缓存层会自动从数据库中加载或写回到数据库中,这种策略的优点是,对于应用层的使用非常友好,只需要操作缓存即可,缺点是需要缓存层支持和后端数据库的联动。

3. Write Behind Pattern(异步缓存写入)

跟读写穿透很像,都是缓存把数据读取写入到数据库中,读写穿透是同步更新缓存和数据库,异步缓存是只更新缓存不直接更新数据库,而是异步批量的方式更新数据库。应对大量写操作的场景。缺点是如果数据还没来得及写入数据库,系统发生异常会导致数据不一致的问题,还可能导致缓存中的数据永远丢失。

相关文章

  • 14-redis

    前言 questions:1、缓存有哪些类型2、缓存的读写模式3、缓存的数据结构 Redis应用场景 缓存使用,减...

  • Redis读写缓存模式

    1. Cache Aside Pattern(旁路缓存模式) 常用的缓存模式,适合读请求比较多的场景,同时维持缓存...

  • Redis常用缓存读写策略

    数据库与Redis保持缓存一致性问题 旁路缓存模式 这是平时使用比较多的一个缓存读写模式,比较适合读请求比较多的场...

  • Redis与数据库的数据一致性问题

    一 读写模式 Cache aside pattern 模式(读写均以缓存为先)1) 读,从缓存读,如果缓存没有,...

  • redis常见问题及处理机制

    Redis 简介 数据库 redis数据在内存中,读写速度快,广泛用于缓存方向为什么要使用缓存(redis) ->...

  • Redis入门——缓存设计

    缓存优点 加速读写:缓存通常是全内存的(例如Redis、Memcache),而存储层通常读写性能不够强悍,通过缓存...

  • Redis企业级的缓存设计,缓存穿透,缓存击穿原理解释

    缓存的收益与成本 ①收益 加速读写:因为缓存通常都是全内存的(例如Redis、Memcache),而存储层通常读写...

  • houyi平台-开发指南-持久层开发

    缓存API使用指南 导入Redis依赖工程 声明Redis读写模板 基本操作 往Redis中存放数据 redisR...

  • 分布式缓存

    Redis C语言开发的,开源高性能(11w/s读,9w/s写),键值对 内存数据库 缓存读写模式 Cache A...

  • 缓存策略优化

    缓存介绍 在高并发多用户的系统中常常会使用缓存来提升读写性能 常见的如memcached, redis, 内存缓存...

网友评论

      本文标题:Redis读写缓存模式

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