课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
缓存功能的应用是程序员在开发软件和网页的时候都经常使用的一个功能,下面我们就通过案例分析来了解一下,缓存的概念与实现方式。
1、缓存
缓存也被称为Cache,本质上是数据交换的一段缓冲区,也可以称为一种存储数据的组件,缓存主要用于减小数据交换双方速度不匹配的问题。
缓存在计算机世界里是一个常见并且不可忽视的一个重要因素,它几乎遍布于你所知的各个领域。例如cpu的一级缓存,二级缓存;浏览器的缓存等。我们在使用缓存的时候要清除的认识到缓存的数据是有有效期的,也就是说可能随时会消失。有的同学会说了,类似redis这些组件都提供了数据持久化的功能,这样数据就不会消失了。至于这个问题其实我想说两点:
当组件提供了持久化功能的时候,必然会发生磁盘的IO操作,而磁盘IO的操作必然会大大降低缓存组件的性能,那缓存的价值还有吗?
缓存的数据在时间定义上是一种临时性的数据,如果做了持久化,这种临时性的意义就不存在了,而且还占用了磁盘的存储空间
缓存常见的存储介质是内存,但这并不意味只有内存可以存储缓存数据,这也是初学者经常会犯的错误。缓存的作用是提供高速的读写功能,所以如果你的设备足够快,理论上都可以作为缓存使用,比如现在的SSD,在一些性能不太严格和敏感的场景下就可以作为存储缓存数据的介质
2、缓存实现方式
系统中实现缓存的方式大体上可以分为两种:
进程内缓存
进程内缓存是指缓存和应用程序在同一个进程内,在获取缓存数据的时候不需要跨越网络,所以进程内缓存是访问速度快的一种方式。
进程内缓存一般用在单机或者小型系统中,但是,在整体架构实现了一致性的前提下,也可用于大型系统,什么意思呢?举个栗子:在多个服务器节点的情况下,假如用户A的信息缓存在0号节点,如果有一种机制能保证用户A的所有请求都只会到达0号节点,这个时候利用进程内缓存就完全没有问题。
进程外缓存
顾名思义,进程外缓存的意思是缓存数据和应用程序是隔离的,位于不同的进程内。当然这里又可以把进程外缓存划分为单机版和分布式版本,单机版本这里就不多说了,会存在单机故障问题。
进程外的分布式版本通常被称为分布式缓存,是基于分布式理论的一种架构模式。它突破了单机缓存的容量限制和单机故障问题,虽然在访问速度上比进程内缓存要慢很多,但是相比较磁盘IO操作要快的多,所以现在很多大型系统都喜欢用分布式缓存来提高性能。像用的多的Redis在3.0版本之后就提供了集群方案。
【免责声明】:本内容转载于网络,转载目的在于传递信息。文章内容为作者个人意见,本平台对文中陈述、观点保持中立,不对所包含内容的准确性、可靠性与完整性提供形式地保证。请读者仅作参考。更多内容请在707945861群中学习了解。