jieye の 数字花园

Search

Search IconIcon to open search

数据库缓存一致性问题

Last updated Unknown

https://xiaolincoding.com/redis/architecture/mysql_redis_consistency.html#%E5%B0%8F%E7%BB%93
小林写的很全面,我基于此做了 xmind 加深印象

数据库缓存一致性问题.png

# 数据库缓存一致性问题

# 先更新数据库,再删除缓存(Cache Aside 策略)

# 读策略

# 写策略

# 因为缓存的写入通常要远远快于数据库的写入,所以在实际中很难出现请求 B 已经更新了数据库并且删除了缓存,请求 A 才更新完缓存的情况

# 对缓存的命中率带来影响

# 先删除缓存,再更新数据库

# 延迟双删

#删除缓存 redis.delKey(X) #更新数据库 db.update(X) #睡眠 Thread.sleep(N) #再删除缓存 redis.delKey(X)

# 先更新数据库,再更新缓存

# 先更新缓存,再更新数据库

# 如何保证两个操作都能执行成功?

# 引入消息队列

# 订阅 MySQL binlog,再操作缓存