在高并发下,由于时许的问题导致缓存中的数据与数据库中的数据不一致那么我们应该如何解决呢? 1、 锁能解决这种问题吗,不行为什么呢。 锁解决的是竞争问题。 2、单纯的消息中间件能解决吗,中间件可以保证时序,但是不能判断是否存在该消息 3、数据库的事务是否能解决呢? 事务解决的也是数据一致性的问题(业务层与数据库层面的一致性),看来这个也跟数据库的事务没有关系。 4、我们可以采用队列来实现,read的时候判断当前队列中是否存在删除操作,如果存在直接等待,如果没有直接执行,这个看样子是可以解决问题,当前这样会出现大量的线程阻塞、有可能还是出现timeout。