从业务层面上的堆数据库下性能瓶颈的解决方案:
分库分表、读写分离
缓存
缓存 (Cache):本质是数据交换的一段缓冲区,也可以称为一种存储数据的组件,主要用于减小数据交换双方速度不匹配的问题。
缓存在计算机世界里是一个常见并且不可忽视的一个重要因素,几乎遍布于各个领域。例如 CPU 的一级缓存,二级缓存;浏览器的缓存等。使用缓存时要认识到缓存的数据具有有效期,也就是说可能随时会消失。虽然类似 radis 这些组件都提供数据持久化的功能,这样数据就不会消失。但还要考虑两点:
- 当组件提供持久化功能时,必然会发生磁盘的 IO 操作,而磁盘 IO 的操作必然会大大降低缓存组件的性能,那缓存的价值还有吗?
- 缓存的数据在时间定义上是一种临时性的数据,如果做了持久化,这种临时性的意义就不存在了,而且还占用了磁盘的存储空间
缓存的常见存储介质为内存,但这并不意味只有内存可以存储缓存数据。缓存的作用是提供高速的读写功能,所以如果设备足够快,理论上都可以作为缓存使用,比如现在的 SSD,在一些性能不太严格和敏感的场景下就可以作为存储缓存数据的介质。
缓存应用场景
理论上,任何需要提高访问速度的环节都可以加入缓存。但系统加入缓存模块会在一定程度上增加系统的复杂度,所以在是否引入缓存的问题上,需要根据业务场景来平衡。一般符合以下几种特征的数据可以考虑引入缓存模块: