我所知道的缓存知识

在web开发,特别是高并发,用户量大的网站,缓存是非常重要的部分,缓存的目的就是降低后端服务器的压力,使系统能更健壮的运行,提供更好的服务。下面是我知道的缓存要点。

1.多级缓存

    多级缓存包括:

    CND:内容网络分发

    浏览器缓存

    接入层缓存:负载均衡层()

    应用层缓存:Tomcat/Apache/Nginx等

    分布式缓存:redis/Memcahe等

2.各层缓存的作用

   接入层缓存:可以提升系统的吞吐量,降低后端的压力,特别是对热点数据

   分布式缓存:减少访问回源率(查询数据库)

   应用层缓存:缓冲缓存失败或者雪崩之后对后端冲击

2.分布式缓存负载均衡算法

    分布缓存中:主要有两种算法,轮询和一致性哈希

    轮询:可以是服务的请求更加均衡,但缓存命中率低,特别随着机器的增多,命中率会越来越低。

               例如只有2台机器,则命中率是50%,增长到3台后命中率就是33%,4台就是25%。

   一致性哈希:提升了缓存的命中率,但是可能造成的某台机器负载过重。因为相同的请求都指向了同一台服务器

   考虑到两者的优缺点,在使用时,可以设置阈值,在系统在阈值下,使用一致性哈希,让缓存命中率更高,超过这个阈值,系统自动降级为轮询

3.缓存淘汰算法

      LRU:最近最少使用

      LRU-K:最近使用过K次

      LFU:根据数据的历史访问频率来淘汰数据

      FIFO:先进先出

4.缓存过期与不过期策略

5.缓存组件的实现原理及差异(主要是Redis/Memcache等主流缓存组件)

6.缓存使用模式

     Cache-Aside

     Cache-As-SoR:Read-Through/Write-Through/Write-Behind

7.缓存中需要关注的问题

   (1)热点数据

   (2)大Value

   (3)数据一致性问题

   (4)更新缓存与原子性问题

   (5)缓存崩溃与恢复问题

   (6)命中率问题

8.缓存系统会出现的问题

    (1) 雪崩

    (2) 缓存穿透

    (3)数据一致性问题

    (4)热点数据

9.热点发现

站在巨人的肩膀上成长,文章思想和经验来自各类大神 参考  《亿级流量网站架构核心技术》 《深入分布式缓存从原理到实践》

猜你喜欢

转载自blog.csdn.net/H_L_S/article/details/84670451
今日推荐