常见缓存集锦

缓存技术,五花八门,有 memcache、redis、squid、varnish、web cache、 CDN等等。缓存技术主要分为三个大类:

一:数据库缓存

二:静态缓存

三:动态缓存

1.数据库缓存

1.简介

常见的数据库,如oracle、mysql等,数据都是存放在磁盘。虽然数据库层也有对应的缓存,但这种缓存一般针对的是查询内容,而且粒度太小,一般只有表中数据没有变更的时候,数据库对应的缓存才发挥作用。但这并不能减少业务系统对数据库产生的增、删、查、改的庞大IO压力。
所以数据库缓存技术在此诞生,实现热点数据的高速缓存,提高应用的响应速度,极大缓解后端数据库的压力

2.特点

性能优越

数据库缓存的第一个技术特点就是提高性能,所以数据库缓存的数据基本上都是存储在内存中,相比io读写的速度,数据访问快速返回。而且在mysql 5.6之后,已经把memcache这种数据库缓存直接集成进去了,不需要我们自己去单独部署对应数据库缓存的中间件了。

应用场景

针对数据库的增、删、查、改,绝大部分的应用场景的还是“”缓存,当然,“增、删、改”的场景也是有的。

数据一致性

绝大多数应用中,缓存中的数据和数据库中的数据是不一致的。即,我们牺牲了实时性换回了访问速度。
我们对实时性可以有一定的容忍度的数据,容忍度的时间可以是5分钟,也可以是5小时,取决于业务场景的要求。
相反,一定要求是实时性的数据库,就不应该从缓存里读取

高可用

缓存为数据库抵挡了很多压力,同时也为应用提供了良好的访问速度。
如果数据库缓存“罢工”,特别在一些高并发的应用中,数据库层肯定是“消化不良“,最终导致应用全面崩溃。所以缓存的高可用显得非常重要。

3.常见技术

memcache和redis两个中间件

4.选择方案

持久化需求或者对数据结构和处理有高级要求的应用,选择redis(自带持久化功能)。
其他简单的key/value存储,选择memcache。
所以根据自身业务特性,数据库缓存来选择适合自己的技术。

2:静态缓存

1.简介

一般指 web 类应用中,将图片、js、css、视频、html等静态文件通过磁盘或内存等缓存方式,提高资源响应方式,减少服务器压力/资源开销的一门缓存技术。

2.常见技术

浏览器缓存、磁盘缓存、内存缓存、nginx的内存缓存、CDN

3.动态缓存

是在新内容发布以后,并不预先生成相应的静态页面,直到对相应内容发出请求时,如果前台缓存服务器找不到相应缓存,就向后台内容管理服务器发出请求,后台系统会生成相应内容的静态页面,用户第一次访问页面时可能会慢一点,但是以后就是直接访问缓存了。
相关的其他页面能自动更新,从而大大减少了设计相关页面更新触发器的需要。

没有更多推荐了,返回首页

私密
私密原因:
请选择设置私密原因
  • 广告
  • 抄袭
  • 版权
  • 政治
  • 色情
  • 无意义
  • 其他
其他原因:
120
出错啦
系统繁忙,请稍后再试

关闭