Redis- 缓存

Redis- 缓存

  • 全面了解缓存
    1. 缓存的意义
      1. 缓存大体分三类:客户端,服务端,网络中的缓存;根据规模和部署方式也可分为:单体缓存,缓存集群,分布式缓存;
    2. 缓存的分类
      1. 客户端:客户端缓存相对于其它端的要简单一些,且通常是和服务端以及网络的应用或缓存配合使用。对互联网应用而言,也就是说的BS架构应用,可分页面缓存和浏览器缓存。是指APP自身所用的的缓存。
      2. App上的缓存
      3. 网络缓存:网络中的缓存位于客户端和服务端之间,代理或响应客户端的网络请求,从而对重复的请求返回缓存中的数据资源。同时,接受服务端的请求,更新缓存中的内容
      4. Web代理缓存
      5. 边缘缓存:如果反向代理服务器能够做到和用户来自同一个网络,那么用户访问反向代理服务器,就会得到很高质量的响应速度,所以可以将这样的反向代理缓存称为边缘缓存。边缘缓存在网络上位于靠近用户的一侧,可以处理来自不同用户的请求,主要用于向用户提供静态的内容,以减少应用服务器的介入。边缘缓存的一个有名的开源工具就是Varnish,在默认情况下进行保守缓存。也就是说,Varnish只缓存它所知的安全内容。Varnish 的一个特性是使用虚拟内存,精妙之处在于利用了操作系统的管理机制。Varnish可以高度定制如何处理请求,缓存哪些内容。边缘缓存中典型的商业化服务就是CDN了,例如AWS 的 Cloud Front,我国的ChinaCache等,现在一般的公有云服务商都提供了CDN服务。CDN是Content DeliveryNetwork 的简称,即“内容分发网络”的意思。
      6. 服务端缓存
      7. 数据库缓存
      8. 应用级缓存:在Java语言中,缓存框架更多,例如 Ehcache,Cacheonix,Voldemort,JBoss Cache,oSCache 等等
      9. 平台级缓存:平台级缓存,需要开发者通过代码来实现缓存机制。这里是NoSQL的胜场,不论是Redis还是 MongoDB,以及 Memcached都可以作为平台级缓存的重要技术。一种典型的方式是每分钟或一段时间后统一生成某类页面存储在缓存中,或者可以在热数据变化时更新缓存。
    3. 缓存算法
      1. 缓存命中:当发起一个请求时,系统接受到这个请求,如果该请求数据在缓存中这一数据就会被使用,这一行为叫缓存命中。
      2. 存储成本:没有命中时,从数据库取数据然后放入缓存。这所要的时间和空间是存储成本。
      3. 缓存失效:当数据需要更新时,说明这个数据失效了。替代策略:当没有命中时,且缓存容量已满,就要去除一条旧数据,加入一个新数据,而去哪些数据呢?由替代策略决定。
      4. 替代策略的具体实现就是缓存算法
        1. Lru: 替换掉最近被请求最少的对象
        2. Lfu: 替换掉访问次数最少的缓存
        3. Lru2: 把被两次访问过的对象放入缓存池,当缓存池满了之后,会把有两次最少使用的缓存对象去除
        4. 2Q:把被访问的数据放到LRU 的缓存中,如果这个对象再一次被访问,就把他转移到第二个、更大的LRU缓存,使用了多级缓存的方式。去除缓存对象是为了保持第一个缓存池是第二个缓存池的1/3。当缓存的访问负载是固定的时候,把LRU换成LRU2,就比增加缓存的容量更好
        5. Size: 替换占用空间最大的对象
        6. Lru-threshold:不缓存某一size的对象
        7. Log(size)+lru:替换size最在原对象,当size相同时,按lru进行替换
        8. Hyper-glfu的改进版本,同时考虑上次访问时间和对象size
        9. Pitkow/recker替换最近最少使用的对象,除非所有对象都是今天访问过的。
        10. Lowest-latency-first 替换下载时间最少的文档。显然它的目标是最小化平均延迟
        11. Hybrid Hybrid有一个目标是减少平均延迟。对缓存中的每个文档都会计算一个保留效用,保留效用最低的对象会被替换掉
        12. lrv也是基于计算缓存中文档的保留效用,然后替换保留效用最低的文档
        13. arc: ARC介于LRU和LFU之间,为了提高效果,由2个LRU组成,第一个包含的条目是最近只被使用过一次的,而第二个LRU包含的是最近被使用过两次的条目,因此,得到了新的对象和常用的对象。ARC能够自我调节,并且是低负载的。
        14. ………………………还有好多
    4. 多级缓存实例

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值