点击上方“Java知音”,选择“置顶公众号”
技术文章第一时间送达!
今天是端午节,首先祝大家开心快乐,身体健康,收入翻倍!
以下是正文:
在实际的开发当中,我们经常需要进行磁盘数据的读取和搜索,因此经常会有出现从数据库读取数据的场景出现。但是当数据访问量次数增大的时候,过多的磁盘读取可能会最终成为整个系统的性能瓶颈,甚至是压垮整个数据库,导致系统卡死等严重问题。
常规的应用系统中,我们通常会在需要的时候对数据库进行查找,因此系统的大致结构如下所示:
当数据量较高的时候,需要减少对于数据库里面的磁盘读写操作,因此通常都会选择在业务系统和MySQL数据库之间加入一层缓存从而减少对数据库方面的访问压力。
但是很多时候,缓存在实际项目中的应用并非这么简单。下边我们来通过几个比较经典的缓存应用场景来列举一些问题:
1.缓存和数据库之间数据一致性问题
常用于缓存处理的机制我总结为了以下几种:
Cache Aside
Read Through
Write Through
Write Behind Caching
首先来简单说说Cache aside的这种方式: