如何保证缓存与数据库的双写一致性

最主要的是串行,读请求和写请求串行化,串到一个内存队列里去,

1并发量不高情况下,修改数据时,先更新数据库,后删除缓存。不更新缓存的原因是,频繁操作,lazy思想,不一定每次更改,缓存都会查到

2.并发量高情况下,更新数据时,根据唯一标识,进行路由操作后,发送到jvm内存中队列中,如果查数据时,也是去拿缓存,如果缓存没有也发送唯一标识去jvm内存队列中。这样数据变更也是删除缓存,更改数据库。

     优化点,如果发现队列里有更新指令,就不需要再发送更新指令了。

问题

1.避免查询操作,读请求超时阻塞

2.读请求并发量过高

3.多服务部署请求路由

4.热点商品路由,导致请求倾斜。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值