【缓存】什么是缓存

转载 2016年05月30日 19:39:45

-----------------------

专题【缓存】相关文章


-----------------------

作者:LiXiang

链接:http://www.leexiang.com/cache-algorithm


  缓存是“存贮数据(使用频繁的数据)的临时地方“,因为取原始数据的代价太大了,而通过缓存可以取得快一些。

缓存可以认为是数据的池,这些数据是从数据库里的真实数据复制出来的,并且为了能别取回,被标上了标签(键 ID)。


       有以下几个术语需要了解:

命中

       当客户发起一个请求(我们说他想要查看一个产品信息),应用接受这个请求,并且如果是在第一次检查缓存的时候,需要去数据库读取产品信息。

       如果在缓存中,一个条目通过一个标记被找到了,这个条目就会被使用,称其缓存命中。所以,命中率也就不难理解了。

Cache Miss

       但是这里需要注意两点:

1.如果还有缓存的空间,那么,没有命中的对象会被存储到缓存中来。

2.如果缓存满了,而又没有命中缓存,那么就会按照某一种策略,把缓存中的旧对象踢出,而把新的对象加入缓存池。而这些策略统称为替代策略(缓存算法),这些策略会决定到底应该提出哪些对象。

存储成本

       当没有命中时,会从数据库取出数据,然后放入缓存。而把这个数据放入缓存所需要的时间和空间,就是存储成本。

索引成本

       和存储成本相仿。

失效

       当存在缓存中的数据需要更新时,就意味着缓存中的这个数据失效了。

替代策略

       当缓存没有命中时,并且缓存容量已经满了,就需要在缓存中踢出一个老的条目,加入一条新的条目,而到底应该踢出什么条目,就由替代策略决定。


相关文章推荐

Nginx配置负载均衡和缓存详解

  • 2017年11月10日 17:35
  • 328KB
  • 下载

用例子理解hibernate的一级缓存

缓存由ORM框架提供以便用户可以获得更快速的访问速度,同时框架本身也减少了数据库查询操作。 hibernate中的一级缓存是默认使用的,使用它你不需要操作任何事情。实际上,你不能强制关闭它。 如果...

hibernate4.0使用二级缓存jar包

  • 2017年11月08日 17:39
  • 982KB
  • 下载

以Spring整合EhCache为例从根本上了解Spring缓存这件事

前两节“Spring缓存抽象”和“基于注解驱动的缓存”是为了更加清晰的了解Spring缓存机制,整合任何一个缓存实现或者叫缓存供应商都应该了解并清楚前两节,如果只是为了快速的应用EhCache到Spr...

缓存数据的代码

  • 2017年11月08日 16:06
  • 1KB
  • 下载

Android中的缓存机制与实现

Android开发本质上就是手机和互联网中的web服务器之间进行通信,就必然需要从服务端获取数据,而反复通过网络获取数据是比较耗时的,特别是访问比较多的时候,会极大影响了性能,Android中可通过二...

深度无盘SSD缓存工具

  • 2017年10月30日 18:39
  • 660KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:【缓存】什么是缓存
举报原因:
原因补充:

(最多只允许输入30个字)