Mysql和Redis数据保持一致性的问题

1 前言

        首先阐述一下mysql和redis的关系:mysql是关系型数据库,常用来持久化数据,一定程度可以保证数据的可靠性;redis是用来做缓存数据的,主要是用来提升数据访问的性能。

2 缓存不一致是如何产生的

        在高并发的情况下,往往会非常频繁的去对数据库的读写操作,当请求量大了之后,数据库就会扛不住从而宕机,挂了,这个时候我们会引入缓存,将数据存放到缓存中,来减少数据库的压力,这个时候我们去读取数据的时候就会从两个地方读取,那么必然就好产生数据不一致的情况

3 如何去更新缓存和数据库

        大致有四种方法

          1. 先删除缓存,在更新数据库

          2. 先更新数据库,在删除缓存 

          3. 先更新数据库,在更新缓存

          4. 先更新缓存,在更新数据库

3.1 先删除缓存,在更新数据库

       

        客户端1发送了一个写操作,先删除缓存,此时客户端2来了一个读操作进来缓存未命中,去数据库去读取

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值