服务器之家:专注于VPS、云服务器配置技术及软件下载分享
分类导航

Mysql|Sql Server|Oracle|Redis|MongoDB|PostgreSQL|Sqlite|DB2|mariadb|Access|数据库技术|

服务器之家 - 数据库 - Redis - 浅谈Redis缓存更新策略

浅谈Redis缓存更新策略

2022-08-03 11:29脚踏实地 仰望星空 Redis

这篇文章主要介绍了Redis缓存更新策略的相关资料,讲解的十分细致,有需要的小伙伴可以参考下

  内存淘汰 超时剔除 主动更新
说明 不用自己维护,利用Redis的内存淘汰机制,当内存不足时自动淘汰部分数据。下次查询时更新缓存 给缓存数据添加TTL时间,到期后自动删除缓存,下次查询时更新缓存 编写业务逻辑,在修改数据的同时,更新缓存
一致性 一般
维护成本

业务场景需求:

  • 在基本不会更新数据的情况下可以使用内存淘汰机制
  • 在频繁更新数据的情况下可以使用主动更新,并以超时剔除作为兜底方案。

主动更新的三种方法

  • Cache Aside Pattern:由缓存的调用者,在更新数据库的同时更新缓存
  • Read/Write Through Pattern:缓存和数据库整合为一个服务,由服务来维护一致性。调用者调用该服务,无需关心缓存一致性问题。
    优点:整合的服务保证了数据的一致性
    缺点:维护和开放成本高
  • Write Behind Caching Pattern:调用者只操作缓存,由其他线程异步的将缓存数据持久化到数据库,最终保持一致。
    优点:异步更新缓存数据,效率高。例如缓存多次更新,但是更新到的缓存并没有被使用,多次将数据持久化到数据库就相当于进行了无用的操作,异步更新相当于将前几次的更新合并为一次更新,因而提高了效率。
    缺点:无法保证一致性,维护成本高
  • 目前主流使用的Redis缓存主动更新的方法是Cache Aside Pattern

操作缓存和数据库时需要考虑的三个问题

1.删除缓存还是更新缓存?

  • 更新缓存:每次更新数据库都更新缓存,无效写操作较多
  • 删除缓存:更新数据库时让缓存失效,查询时再更新缓存

2.如何保证缓存与数据库的操作的同时成功或者失败

  • 对于单体系统:将缓存与数据库操作放在一个事务中
  • 对于分布式系统:利用TCC等分布式事务方案

3.先操作缓存还是先操作数据库

先删除缓存,再操作数据库

浅谈Redis缓存更新策略

先操作数据库,再删除缓存

浅谈Redis缓存更新策略

如上图所示,两种方案在多线程的情况下都会产生数据不一致的问题。但是在先操作数据库再删除缓存的情况下,要发生数据不一致的问题,需要在缓存写入之前完成更新数据库和删除缓存的操作,而写入缓存的耗时非常短。因而发生的概率相对于另一种方案更低。所以选择先操作数据库,再删除缓存。

到此这篇关于浅谈Redis缓存更新策略的文章就介绍到这了,更多相关Redis缓存更新策略内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!

原文链接:https://www.cnblogs.com/xuzhuo123/p/16377551.html

延伸 · 阅读

精彩推荐
  • Redis详谈redis优化配置和redis.conf说明(推荐)

    详谈redis优化配置和redis.conf说明(推荐)

    下面小编就为大家带来一篇详谈redis优化配置和redis.conf说明(推荐)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧...

    jingxian3572019-11-04
  • Redis详解redis在微服务领域的贡献

    详解redis在微服务领域的贡献

    本文以dubbo为例看下redis是如何利用自身特性来完成注册中心的功能,对redis微服务相关知识感兴趣的朋友一起看看吧...

    捉虫大师8772021-11-21
  • Redis使用Ruby脚本部署Redis Cluster集群步骤讲解

    使用Ruby脚本部署Redis Cluster集群步骤讲解

    今天小编就为大家分享一篇关于使用Ruby脚本部署Redis Cluster集群步骤讲解,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一...

    DBA之路4902019-11-22
  • Redis这可能是最中肯的 Redis 使用规范了!

    这可能是最中肯的 Redis 使用规范了!

    只有规范的使用 Redis,才能实现高性能和节省内存,否则再屌的 Redis 也禁不起我们瞎折腾。...

    Java技术栈3592021-11-03
  • Redis一文教你学会Redis的事务

    一文教你学会Redis的事务

    Redis 作为内存的存储中间件,已经是面试的面试题必问之一了。今天小编就来和大家一起来聊聊Redis的事务吧,希望对大家有所帮助...

    指北君4632022-08-03
  • RedisWindow server中安装Redis的超详细教程

    Window server中安装Redis的超详细教程

    这篇文章主要介绍了Window server中安装Redis的教程,本文通过图文实例代码相结合给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要...

    极客研究者11132021-11-24
  • RedisLinux系统下安装Redis数据库过程

    Linux系统下安装Redis数据库过程

    大家好,本篇文章主要讲的是Linux系统下安装Redis数据库过程,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下,方便下次浏览...

    黄小黄的黄8932022-02-10
  • Redisredis操作学习记录

    redis操作学习记录

    这篇文章主要介绍了redis操作,记录总结了Redis客户端、服务器、string、hash、list、发布/订阅、事务等相关概念、原理与操作技巧,需要的朋友可以参考下 ...

    随风行云4842020-05-14