varnish缓存系统基础知识

缓存系统类型

1.页面缓存/pageCache     缓存静态资源(html js css image)  例如:varnish    squid

2.数据缓存/dataCache      缓存应用程序在数据库中查询到的数据结果 例如:redis  memcache

缓存系统一般是key/value类型 缓存只是缓存读请求,写操作不能缓存.在hash表中查询有o(1)的查询效率,在30条数据和30万条数据中匹配一条数据的效率是一样的

衡量缓存命中率:

1.请求命中次数      2.命中的字节数(内容长度)

缓存级别:

浏览器    》  浏览器缓存   》 CDN缓存   》   调度器(网关)    》varnishi缓存  》 RS本地缓存   》 RS

缓存服务器和后端服务器的请求和响应

200  缓存资源已经失效               把最新资源内容封装到响应body中发送给缓存服务器

304  缓存资源没有发生改变        只有响应头没有响应体 节约网络资源

CDN 内容投递分发网络

用智能DNS自动判断用户的来源,将离用户最近的缓存服务器中的数据投递给用户

判定距离用户最近的标准:

1.静态的调度 单纯的通过距离来判定

2.通过各个缓存服务器当前的链路状态来判断

缓存适用场景

静态内容是适合使用缓存,最大的问题可能是用户看到的数据不精准而已

动态生成的静态页面适合使用缓存,如新闻,商品展示页面 这些页面生成后一般不会经常修改,也不包含用户隐私,所有用户看到的数据也是相同的

动态生成的结果尽量不要使用缓存,因为可能导致用户敏感数据泄露.

数据库在线写事务较高的数据不适合缓存,如在线微博,用户更新频率非常的高,缓存结果很快就会失效

web站点架构

静态资源一般被分成了两个服务器组来存储 把站点图片和其它静态资源(html,css,js)分别存储在不同的服务器组

原因是用户一旦把图片上传至服务器是不会被修改的,只有可能被删除.而且也不会随着网站版本的发布和更新而发生改变

系统架构注意点

1.负载均衡 haproxy
    2.高可用 避免出现单点 keepalived
    3.动静分离 varninsh缓存
    4.读写分离 memcached缓存
    5.系统监控 zabbix
    6.安全加固 iptables selinux sudo

iptables       
  负载均衡     > 静态缓存    >    web服务器      > php服务器     >数据缓存       > mysql
  haproxy          varnish             tomcat                                      memcached
  nginx              nginx                nginx                                        redis
                        动静分离                                                           读写分离

varnish缓存

第一次请求还是会被转发到后端,后面请求同样的资源就会从varnish缓存中取得数据

memcached的缓存逻辑
  一般是开发在代码中实现缓存数据,当请求过来的时候,先去memcached中查询相应的key是否存在,如果存在key则直接返回数据结果
  如果不存在key 则先到数据库中查询出相应数据 然后把数据set到memcached中同时返回给客户端
  每次修改数据后会先去数据库中查询最新结果 然后再去更新memcached

原文地址:https://www.cnblogs.com/yxh168/p/9314284.html

时间: 2024-11-07 21:11:55

varnish缓存系统基础知识的相关文章

Linux系统基础知识

1.linux概述 ??Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户.多任务.支持多线程和多CPU的操作系统.它能运行主要的UNIX工具软件.应用程序和网络协议.它支持32位和64位硬件.Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统.??Linux操作系统诞生于1991 年10 月5 日(这是第一次正式向外公布时间).Linux存在着许多不同的Linux版本,但它们都使用了Linux内核.Linux可安装在各

马哥2013年运维视频笔记 day01 系统基础知识

没有什么可说的,马哥的Linux视频真的是精品,这里把我学习以后的笔记整理到这里,以备不时之需. day01 ①.Linux学习的一些方法论 做好总结,必须学习完一个知识点以后要用自己的思想把它彻底的给别人讲明白,这样这个知识就真的融入你们的知识体系了,否则看着会了,其实是一知半懂.比较好的方法就是写总结,记笔记,然后汇总成博客,这样可以锻炼你对问题条理化理解,这会影响你们的一生,是隐形的影响. 都说Linux很难,不然怎么体现你的价值啊?只有基础打牢,之后的中高级内容才能从容不迫.要做好知识结

20181126-信息系统基础知识

学习目标 听<信息系统基础知识> 一节 待解决问题 构件的概念 ? 构件是面向软件体系架构的可复用软件模块.构件(component)是可复用的软件组成成份,可被用来构造其他软件.它可以是被封装的对象类.类树.一些功能. 如何表达一个项目的架构,用什么图表? 架构设计作为一个系统开发的中间产品,交付的是什么内容? 各种架构风格的适用场景? 互联网应用  BS架构的应用  ria 富互联网是什么意思? ria 丰富互联网应用. j2ee与.net的比较? 中间件技术的6种功能? 学习内容  基于

20181128-信息系统基础知识

学习目标 听<信息系统基础知识> 一节 待解决问题 构件的概念 ? 构件是面向软件体系架构的可复用软件模块.构件(component)是可复用的软件组成成份,可被用来构造其他软件.它可以是被封装的对象类.类树.一些功能. 如何表达一个项目的架构,用什么图表? 架构设计作为一个系统开发的中间产品,交付的是什么内容? 各种架构风格的适用场景? 互联网应用  BS架构的应用  ria 富互联网是什么意思? ria 丰富互联网应用. j2ee与.net的比较? 中间件技术的6种功能? 形式化方法是怎样

20181204-信息系统基础知识

学习目标 听<信息系统基础知识> 一节 待解决问题 构件的概念 ? 构件是面向软件体系架构的可复用软件模块.构件(component)是可复用的软件组成成份,可被用来构造其他软件.它可以是被封装的对象类.类树.一些功能. 如何表达一个项目的架构,用什么图表? 架构设计作为一个系统开发的中间产品,交付的是什么内容? 各种架构风格的适用场景? 互联网应用  BS架构的应用  ria 富互联网是什么意思? ria 丰富互联网应用. j2ee与.net的比较? 中间件技术的6种功能? 学习内容 up模

20181217-信息系统基础知识

学习目标 听<信息系统基础知识> 一节 待解决问题 构件的概念 ? 构件是面向软件体系架构的可复用软件模块.构件(component)是可复用的软件组成成份,可被用来构造其他软件.它可以是被封装的对象类.类树.一些功能. 如何表达一个项目的架构,用什么图表? 架构设计作为一个系统开发的中间产品,交付的是什么内容? 各种架构风格的适用场景? 互联网应用  BS架构的应用  ria 富互联网是什么意思? ria 丰富互联网应用. j2ee与.net的比较? 中间件技术的6种功能? 学习内容 测试评

20181211-信息系统基础知识

学习目标 听<信息系统基础知识> 一节 待解决问题 构件的概念 ? 构件是面向软件体系架构的可复用软件模块.构件(component)是可复用的软件组成成份,可被用来构造其他软件.它可以是被封装的对象类.类树.一些功能. 如何表达一个项目的架构,用什么图表? 架构设计作为一个系统开发的中间产品,交付的是什么内容? 各种架构风格的适用场景? 互联网应用  BS架构的应用  ria 富互联网是什么意思? ria 丰富互联网应用. j2ee与.net的比较? 中间件技术的6种功能? 学习内容 高层逻

20181223-信息系统基础知识

学习目标 听<信息系统基础知识> 一节 待解决问题 构件的概念 ? 构件是面向软件体系架构的可复用软件模块.构件(component)是可复用的软件组成成份,可被用来构造其他软件.它可以是被封装的对象类.类树.一些功能. 如何表达一个项目的架构,用什么图表? 架构设计作为一个系统开发的中间产品,交付的是什么内容? 各种架构风格的适用场景? 互联网应用  BS架构的应用  ria 富互联网是什么意思? ria 丰富互联网应用. j2ee与.net的比较? 中间件技术的6种功能? 学习内容 服务不

20181219-信息系统基础知识

学习目标 听<信息系统基础知识> 一节 待解决问题 构件的概念 ? 构件是面向软件体系架构的可复用软件模块.构件(component)是可复用的软件组成成份,可被用来构造其他软件.它可以是被封装的对象类.类树.一些功能. 如何表达一个项目的架构,用什么图表? 架构设计作为一个系统开发的中间产品,交付的是什么内容? 各种架构风格的适用场景? 互联网应用  BS架构的应用  ria 富互联网是什么意思? ria 丰富互联网应用. j2ee与.net的比较? 中间件技术的6种功能? 学习内容 测试用