IT袋

当前位置:主页 > 经验教程 > 建站编程 >

redis三种常用高效缓存读写策略是什么

redis三种常用高效缓存读写策略是什么

时间:2024-03-21 09:46:56 来源:IT袋 作者:马勇
导读:redis三种常用高效缓存读写策略是什么,为大家分享redis三种常用高效缓存读写策略是什么的相关经验,一起来了解了解吧。 在某一天面试的时候,不念被问到Redis三种缓存读写的策略,懵了,原因是简历上明明

redis三种常用高效缓存读写策略是什么

为大家分享redis三种常用高效缓存读写策略是什么的相关经验,一起来了解了解吧。

在某一天面试的时候,不念被问到Redis三种缓存读写的策略,懵了,原因是简历上明明是写着熟悉Redis。

因此面试官可以随意向任何一个方向进行开火,大家要注意从小点切入,除非自己是完全能够掌握这门技术的。

本文不念将带领大家去了解三种常用的缓存读写策略的优缺点和使用场景。

redis三种常用高效缓存读写策略是什么

题目

Redis三种高效缓存读写策略你了解吗?

推荐解析

旁路缓存模式(Cache Aside Pattern)

旁路缓存是最常见的缓存读写模式,适用于读多写少的使用经常。

服务端以数据库比如 MySQL 为主,Redis 为辅,进行存储。

写操作流程

1)先更新数据库

2)删除 Redis 中的缓存

读操作流程

1)尝试从缓存中读取数据,读取到数据就直接返回

2)缓存中读取不到,从数据库中读取数据

3)读取完毕后,将数据放入缓存

缓存不一致可能的场景(先删后更)

假如先删除缓存,再更新数据库,大概率会造成缓存不一致。

线程 1 把 Redis 中 x 数据删除,此时线程 2 发现缓存中没有数据,从数据库读取,而线程以此时又把数据库中的 x 数据更新,因此线程 2 读取到的就是旧数据,造成了缓存不一致的情况。

缓存不一致发生概率小

被推荐的作法,就是上文讲过的,先更新数据库,再删除缓存。

可能不一致的场景如下

1、缓存中 X(数据) 不存在(数据库 X = 1)

2、线程 1 读取数据库,得到旧值(X = 1)

3、线程 2 更新数据库(X = 2)

4、线程 2 删除缓存

5、线程 1 将旧值写入缓存(X = 1)

6、最终 X 的值在缓存中是 1(旧值),在数据库中是 2(新值),也发生不一致。

此场景需要满足:

1、缓存失效

2、读写请求同步对一个数据进行并发操作

3、更新数据库+删除缓存的时间大于读取和写入缓存的时间,也就是说写操作时间大于度操作时间,因为缓存这块可以不计入,理论发生概率是很小的。

旁路缓存优缺点
优点

1、提高数据访问速度

2、减少主存访问

3、提高并发性

缺点

1、存在缓存数据库不一致情况

2、首次请求数据一定不在缓存(可以缓存预热结合定时任务)

3、写操作频繁会导致缓存被频繁删除,影响缓存命中率。(可以加分布式锁,保证更新数据库同时更新缓存。或者直接设置一个较短的过期时间)

相关阅读

  • 网页设计网站制作流程 百度网页的制作过程

    网页设计网站制作流程 百度网页的制作过程

    文章摘要:网页设计网站制作流程和百度网页的制作过程方面的内容,下面来一起了解一下吧。 受互联网的影响使实体店越来越难,为适应时代,企业将由线下转向线上拓展业务。下面知网科

  • 优化SPF计算的措施有哪些? 优化SPF计算的方法有哪些?

    优化SPF计算的措施有哪些? 优化SPF计算的方法有哪些?

    小编带来的是优化SPF计算的措施有哪些的相关话题,接下来IT袋网带大家一起了解。 为了进一步提高OSPF的性能,可以考虑一些优化措施: 基于事件的计算 传统的OSPF在固定时间间隔进行SPF计算

  • 什么是BGP VRF

    什么是BGP VRF

    跟大家说一说什么是BGP的方法内容,一起跟随小编看看吧! BGP VRF(边界网关协议虚拟路由和转发)是一种 BGP 功能,用于在多租户或多 VRF 环境中提供更精细的路由控制和通告。 这种功能使得

  • 线程的五种状态 五种线程状态:了解并管理线程的状态转换

    线程的五种状态 五种线程状态:了解并管理线程的状态转换

    为大家介绍的是线程的五种状态的电脑小知识,接下来IT袋网小编就来介绍。 五种状态的说法来自于操作系统层面的划分 运行态 :分到 cpu 时间,能真正执行线程内代码的 就绪态 :有资格分