缓存同步机制整理

缓存同步机制整理

同步目的

使数据库数据和缓存中的数据在一定时间内保持一致

缓存形式

  • 内存
  • 文件(磁盘)

缓存更新的常用模式

  • 预留缓存Cache-aside

访问数据库之前先检查缓存中是否有缓存,如果没有在数据库更新后更新缓存。

  • 直读模式 Read-through

应用先查看缓存中是否有该数据,有则直接使用,如果没有,从数据库加载,然后放入缓存,下次以后再访问就可以直接从缓存中获得。

  • 直写模式 Write-through

在数据更新时,同时写入缓存Cache和后端存储(DB)。此模式的优点是操作简单;缺点是因为数据修改需要同时写入存储,数据写入速度较慢。

  • 回写模式 Write-behind

在数据更新时只写入缓存Cache。通常由一个后台队列检查缓存中数据的变化,再将据写到后端存储(DB )。此模式的优点是数据写入速度快,因为不需要写存储;缺点是一旦更新后的数据未被写入存储时出现系统掉电的情况,数据将无法找回。

常见的数据库和缓存组合

互联网公司普遍采用MySql+Redis模式

缓存更新手段

  • 定时轮循
  • 过期更新
  • MySql数据,是可以解析binlog内容,来实现redis更新
  • 数据库触发器
  • 第三方组件databus

常见的分布式缓存

  • Memcached 不可持久化
  • Redis 可持久化

分布缓存中多节点的数据同步

  • 节点监听缓存的状态,如果变了,则通知其他节点,作相应的flush
  • 各个节点记录自己改变的东西,然后同步到其他节点

需要注意的问题

  • 缓存过期
  • 穿透效应
  • 缓存时效

扩展

大公司有能力直接修改数据库低层或都实现自己的数据存储,实现在数据库更新时,直接更新缓存,像阿里的OCS

你可能感兴趣的:(C#)