绝大多数互联网系统,都使用 MySQL 加上 Redis 这对儿经典的组合来解决这个问题。 Redis 作为 MySQL 的前置缓存,可以替 MySQL 挡住绝大部分查询请求,很大程度上缓解了 MySQL 并发请求的压力。
虽然Redis支持持久化到磁盘中,还支持主从复制。但是Redis仍然是一个不可靠的存储,他在设计上天然就不保证数据的可靠性。
即使Redis一般做缓存,也需要考虑Redis的数据丢失问题。做到即使Redis发生了数据丢失,也不影响系统的数据准确性。
Read Through策略
Write Through策略
这种策略大多数情况,没有问题。但是在并发请求,有概率出现脏数据的问题。
比如,一个读请求和一个写请求
Cache Aside
Cache Aside 模式在更新数据的时候,并不去尝试更新缓存,而是去删除缓存。更优一下,但是也有问题。
比如,一个读请求和一个写请求