第1章 Web服务器与分布式缓存
Web服务器与分布式缓存内容包括:
- 缓存动态内容输出(SSI慎用)
- 页面静态化(常见,效果最好。最基本)
- OpCode 缓存
- 应用程序本地缓存
1.1 动态页面静态化
分布式队列任务:高优先级触发生成静态化(如添加新的商品后,首页需要及时更新静态化,此时使用触发生成机制),低优先级定时生成静态化(如定时全站页面重新生成静态化页面)。
1.2 Web服务器缓存
1.2.1 Nginx FastCGI
1.2.2 PHP OpCache
1.2.2.1 PHP 5.5.0之前版本
- 使用APC(Alternative PHP Cache)扩展
- 修改ini增加extension=/full/path/to/php_apc.so
- 修改ini配置相关参数
1.2.2.2 PHP 5.5.0及后续版本
- 编译时增加--enable-opcache
- 修改ini增加zend_extension=/full/opcache.so
- 修改ini配置相关参数
备注:生产环境开启此功能可以大幅降低CPU使用率。
1.2.3 Python pyc
备注:python语言自带缓存配置,不需要自己手动配置。
1.3 分布式缓存
1.3.1 Memcached
备注:Memcached本身不支持分布式,需要自行写程序将数据分布式存储到memcached,不建议使用。
1.3.2 Redis
Redis对于数据库一般做读缓存,很少做写缓冲。
1.3.2.1 Redis集群Redis Cluster
1.3.2.2 Redis集群之Proxy(TWEMProxy)
1.3.2.3 Redis集群之Codis
第2章 数据库与操作系统缓存
2.1 数据库缓存
2.1.1 Oracle体系结构
2.1.2 MySQL缓存体系
2.2 操作系统缓存
2.2.1 CPU缓存
taskset命令将某个进程绑定到某个CPU的核上。
2.2.2 内存缓存
- Page Cache:Page cache是vfs文件系统层的cache。
- Buffer Cache:Buffer Cache对设备数据的缓存。
- 读文件路径:磁盘块—>Buffer Cache—>Page Cache—>应用程序进程空间
2.2.3 Linux存储架构
参考资料:
https://www.thomas-krenn.com/en/wiki/Linux_Storage_Stack_Diagram
2.2.4 RAID卡缓存
2.2.5 磁盘缓存

我的微信
如果有技术上的问题可以扫一扫我的微信