码迷,mamicode.com
首页 > 其他好文 > 详细

大话缓存

时间:2017-07-22 12:04:33      阅读:233      评论:0      收藏:0      [点我收藏+]

标签:内存   成本   block   ima   一半   主从配置   文件内容   时间设置   sof   

一. 前言

  说起缓存,业内有句话,架构师有一半以上的时间是在和缓存打交道。那么缓存到底是什么呢?又有什么作用呢?该系列将揭开缓存神秘的面纱,从零开始,由浅入深,细究各类缓存。

  缓存我个人理解,是利用空间换时间最好的体现,将一些耗时操作(复杂的数据库查询、文件内容的读取)、不经常改变的数据(比如商城的商品大类别),放到缓存(内存)里,提高了访问速度。比如我们很常见的一个例子,某某知名网站的某个页面,可能再特殊情况下,该页面1分钟会有100w次访问量,那就意味着访问了100w次数据库,我的天!忽略服务器端是否会挂掉的问题,假设不挂掉,那么也是需要强大的结构来支持(什么分布式部署、数据主从配置之类),成本巨大;这时如果第一个人访问的时候,我把该页面缓存起来,那么后面的999999次访问都是从缓存中获取,实际上相当于1分钟只访问了一次数据库,性能差别可想而知。

  从我上面举得例子中,我们很容易能看出来,缓存最大的优势:节约时间、提高性能

     那么你可能会问,缓存有这么大的好处,我们是不是数据都可以放到缓存里,来提高性能呢?答案是肯定的:不能!万物都有两面性,有利必有弊,细心的人,会从从上面的例子中发现,我将商品的类别缓存起来,但是商品的类别是肯定会更新的,更新了怎么办? 这时候引出一个词语“缓存过期时间”,意味着我们可以设置缓存的过期时间,一旦缓存过期,将重新获取数据,进行更新。你可能还会问,缓存过期时间设置为多少合适呢?如果缓存还没过期,商品类别的信息已经更新了,那么怎么办呢? 解决这个问题,需要引出一个新的词语“缓存依赖”,缓存可以依赖:文件、文件夹、数据库,依赖项一旦发生变化了,缓存立即更新

    下面我们总结一下缓存好处和弊端:

     好处:访问速度快,提高了并发访问返回速率的时间。

     弊端:数据放到内存里,失去了及时性。(可以通过缓存依赖解决)

     我们什么情况下适合用缓存呢?

     (1). 查询多,修改少的数据。

     (2). 信息要求不是很及时,允许适当的延迟。

     (3). 复杂的计算、远程接口、长时间的查询。

     (4). 高并发,但如果数据量太大,高并发太高,单纯的服务器数据缓存是满足不了的,需要引入分布式缓存(NoSql)。

二. 前端缓存

  读了“前言”,你可能对缓存的概念有了一定了解,但是细心的人可能会更疑惑,因为他在生活中发现了这样几个现象,在手机上装了一个应用,比如QQ,初次安装时可能100M左右,但随着使用,一个月后,发现,我的天,竟然1G了,在QQ的设置页面里,有个选项,叫“清空缓存数据”,如下图:

  技术分享

  点击进行清空后,发现QQ所占的空间又变小了,这里也称作缓存,但是你可能会发现,在前言中提到,缓存是存在服务器内存中的,那么为什么本地的空间后变大呢,

 

大话缓存

标签:内存   成本   block   ima   一半   主从配置   文件内容   时间设置   sof   

原文地址:http://www.cnblogs.com/yaopengfei/p/7220716.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!