最主要的是串行,读请求和写请求串行化,串到一个内存队列里去,
1并发量不高情况下,修改数据时,先更新数据库,后删除缓存。不更新缓存的原因是,频繁操作,lazy思想,不一定每次更改,缓存都会查到
2.并发量高情况下,更新数据时,根据唯一标识,进行路由操作后,发送到jvm内存中队列中,如果查数据时,也是去拿缓存,如果缓存没有也发送唯一标识去jvm内存队列中。这样数据变更也是删除缓存,更改数据库。
优化点,如果发现队列里有更新指令,就不需要再发送更新指令了。
问题
1.避免查询操作,读请求超时阻塞
2.读请求并发量过高
3.多服务部署请求路由
4.热点商品路由,导致请求倾斜。