WEB架构之缓存-应用与硬件缓存(04)

2020年7月21日20:08:31 发表评论 604 views

第1章 Web服务器与分布式缓存

Web服务器与分布式缓存内容包括:

  1. 缓存动态内容输出(SSI慎用)
  2. 页面静态化(常见,效果最好。最基本)
  3. OpCode 缓存
  4. 应用程序本地缓存

1.1 动态页面静态化

分布式队列任务:高优先级触发生成静态化(如添加新的商品后,首页需要及时更新静态化,此时使用触发生成机制),低优先级定时生成静态化(如定时全站页面重新生成静态化页面)。

WEB架构之缓存-应用与硬件缓存(04)

1.2 Web服务器缓存

1.2.1 Nginx FastCGI

WEB架构之缓存-应用与硬件缓存(04)

1.2.2 PHP OpCache

WEB架构之缓存-应用与硬件缓存(04)

1.2.2.1  PHP 5.5.0之前版本

  1. 使用APC(Alternative PHP Cache)扩展
  2. 修改ini增加extension=/full/path/to/php_apc.so
  3. 修改ini配置相关参数

1.2.2.2  PHP 5.5.0及后续版本

  1. 编译时增加--enable-opcache
  2. 修改ini增加zend_extension=/full/opcache.so
  3. 修改ini配置相关参数

备注:生产环境开启此功能可以大幅降低CPU使用率。

参考资料:https://www.php.net/manual/zh/book.opcache.php

1.2.3 Python pyc

WEB架构之缓存-应用与硬件缓存(04)

备注:python语言自带缓存配置,不需要自己手动配置。

1.3 分布式缓存

1.3.1 Memcached

WEB架构之缓存-应用与硬件缓存(04)

WEB架构之缓存-应用与硬件缓存(04)

备注:Memcached本身不支持分布式,需要自行写程序将数据分布式存储到memcached,不建议使用。

1.3.2 Redis

Redis对于数据库一般做读缓存,很少做写缓冲。

WEB架构之缓存-应用与硬件缓存(04)

1.3.2.1  Redis集群Redis Cluster

WEB架构之缓存-应用与硬件缓存(04)

参考资料:http://doc.redisfans.com/topic/cluster-tutorial.html

1.3.2.2  Redis集群之Proxy(TWEMProxy)

WEB架构之缓存-应用与硬件缓存(04)

1.3.2.3  Redis集群之Codis

WEB架构之缓存-应用与硬件缓存(04)

第2章 数据库与操作系统缓存

2.1 数据库缓存

2.1.1 Oracle体系结构

WEB架构之缓存-应用与硬件缓存(04)

2.1.2 MySQL缓存体系

WEB架构之缓存-应用与硬件缓存(04)

2.2 操作系统缓存

2.2.1 CPU缓存

taskset命令将某个进程绑定到某个CPU的核上。

WEB架构之缓存-应用与硬件缓存(04)

2.2.2 内存缓存

WEB架构之缓存-应用与硬件缓存(04)

  • 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卡缓存

WEB架构之缓存-应用与硬件缓存(04)

2.2.5 磁盘缓存

WEB架构之缓存-应用与硬件缓存(04)

weinxin
我的微信
如果有技术上的问题可以扫一扫我的微信
版权声明
1. 本网站名称:Leon的博客
2. 本站永久网址:https://blog.leonshadow.cn
3. 本网站的文章部分内容可能来源于网络,仅供大家学习与参考,如有侵权,请联系站长QQ632113590进行删除处理。
4. 本站一切资源不代表本站立场,并不代表本站赞同其观点和对其真实性负责。
5. 本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报
6. 本站资源大多存储在云盘,如发现链接失效,请联系我们我们会第一时间更新。
liyang