迪迪的速记本
学习redis
Redis是一个开源的使用ANSI C语言编写、遵守BSD协议、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。
它通常被称为数据结构服务器,因为值(value)可以是 字符串(String), 哈希(Hash), 列表(list), 集合(sets) 和 有序集合(sorted sets)等类型。
学习BigPipe
传统的一个打开页面的步骤:
- 浏览器发送 HTTP 请求,DNS解析域名找到服务器的IP
- 服务器接收到 HTTP 请求,解析请求,从存储层拉取数据,拼接 HTML,发回一个 HTTP 响应
- 这个请求通过网络传输到浏览器
- 浏览器解析接收到的数据,构造 DOM 树,下载 CSS 和 JavaScript
- 浏览器下载了 CSS 之后,开始解析 CSS,渲染页面
- 下载 JavaScript 之后,开始解析 JavaScript,执行 JavaScript
BigPipe的主要思想是实现浏览器和服务器的并发执行,实现页面的异步加载,从而提高页面的访问速度。
为了达到这个目的,它首先根据页面的功能或者位置,将页面分成若干个模块,这些模块的名字也被称为PageLet,并对这些分解的模块进行唯一的标识。然后通过Web服务器和浏览器之间建立管道,进行分段输出 (减少请求数)。
举个例子:在我们平时去饭店吃饭的时候,我们先选好桌子点好菜(确定页面布局和要展示的模块),下单到厨房后,多个厨师开始炒菜(服务端并发),做好一样端上来一样吃一样(客户端并发)。