缓存失效问题
缓存与数据库数据的一致性
满足最终一致性:最后肯定可以看到数据库中一致的数据
1.双写模式
修改完数据库中的数据就对缓存中的数据进行修改
问题:高并发下同时修改一条数据,如A先修改了数据还未即使放入缓存,此时B修改了数据并放入缓存,然后A再放入缓存,造成了数据的不一致
根据是否能够接收数据不一致问题(设置了过期时间到时间也会删除了
2.失效模式
修改完数据库中的数据然后将缓存删除
问题:当三个线程进行操作,A先改了数据库,线程失去CPU执行权,还未删除缓存,B也修改了数据库并且删除了缓存,此时C进行查询,发现没有缓存然后去读数据库并放入缓存,此时A又将缓存删除