浅谈网站缓存

C 2019-3-30 2810

网站缓存原则:多读内存,少读硬盘。买不起SSD的话,磁碟硬盘读取就有那么几百毫秒延迟,所以尽量消除掉。

网站读取流程:

Nginx(I/O)->(遇到动态请求)->PHP(I/O)->(遇到数据库查询)->MySQL(I/O)

Nginx(I/O)->(遇到文件请求)->Disk(I/O)

优化步骤如下:

Nginx 需要缓存 SSL 证书,设置如:https://nginx.org/en/docs/http/ngx_http_ssl_module.html

PHP 安装 OPcache 将脚本读取至内存,如果有更新检查时间更好,在此时间内 PHP 脚本都会直接从内存读取

MySQL 已自带缓存机制,需合理设置缓存区大小,让读取频度最高的数据实现直接从内存取出。

Nginx 可设置缓存文件至内存,如 CSS/JS 类文件:https://www.jianshu.com/p/625c2b15dad5

网站程序实现动静分离,即评论、账户信息等使用 AJAX 加载,并设置不允许缓存。

而文章页、首页等,由 PHP 程序添加 cache-control 头,并由 Nginx 缓存至内存。

这样用户更新信息后,内存会在指定时间后检测内容是否已更新,并替换内存数据。

图片等尽量使用CDN进行静态缓存。

这样访客读取时,关键数据都可直接从内存读取,从而减少硬盘压力。

最新回复 (0)