c语言 volatile关键字 DB读写分离情况下,如何解决缓存和数据库不一致性问题?
浏览量:1866
时间:2021-03-14 03:43:20
作者:admin
DB读写分离情况下,如何解决缓存和数据库不一致性问题?
有两种选择。
让我们首先了解缓存和数据库数据不一致时会发生什么。查询数据时,优先从缓存中获取数据。如果缓存不存在,则查询数据库并写入缓存。如果数据库数据发生更改,请清除缓存。在正常情况下,没有问题。但是,在服务的并发性非常高的情况下,如果删除缓存,则在数据库完成数据更新之前会有查询请求。此时,旧数据将被读写到缓存中。在这种情况下,缓存和数据库不一致。
第一种解决方案:延迟删除。更改数据库数据时,清除缓存的操作会延迟一段时间。这段时间可能很短。它只需要确保数据库写入操作已完成。但在实际环境中,我们不知道数据库何时会写入数据,所以很难控制这段时间。如果太短,就不行了。如果时间太长,会影响体验。但总的来说,这种方法可以解决问题。
另一种解决方案是使用数据库的binlog来订阅binlog。更新数据时,该消息用于通知删除缓存。该方案能保证数据库更新操作的完成和缓存的及时更新。
c语言 volatile关键字 cache是什么的映射 cachedata可以删除吗
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。
下一篇
/cast cast命令