创建本地网站网页设计个人主页模板
- 如果是用户维度,并发几率小(用户修改订单)。不需要考虑一致性问题,缓存数据加上过期时间,每隔一段时间出发读数据,主动更新缓存即可。(缓存过期删除数据,触发读请求主动更新,查询缓存null-> mysql->存到缓存->返回)
- 如果是菜单、商品介绍这种对时实性要求不高的数据,允许缓存不一致。可以使用canel订阅binlog的方式。
- 缓存数据加过期时间,足以解决大部分的业务的对于缓存的要求。
- 通过读写锁保证并发读写,写写的时候按照先后顺序排队。读读无所谓,有写操作的时候,使用读写锁。(业务不关心临时脏数据的,可忽略)
总结
5. 对于实时性、数据一致性要求高的数据,不应该存入缓存,这种直接查询数据库,即使慢点也没事。
6. 实时性一致性要求不高的,在缓存中加上自动过期时间,保证当天拿到最新的数据即可(缓存过期删除后,可以触发读自动更新缓存)。
7. 不应该过度增加数据库的写、读复杂性。