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

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

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

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

1.1 动态页面静态化

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

图片[1]|WEB架构之缓存-应用与硬件缓存(04)|leon的博客

1.2 Web服务器缓存

1.2.1 Nginx FastCGI

图片[2]|WEB架构之缓存-应用与硬件缓存(04)|leon的博客

1.2.2 PHP OpCache

图片[3]|WEB架构之缓存-应用与硬件缓存(04)|leon的博客

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

图片[4]|WEB架构之缓存-应用与硬件缓存(04)|leon的博客

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

1.3 分布式缓存

1.3.1 Memcached

图片[5]|WEB架构之缓存-应用与硬件缓存(04)|leon的博客

图片[6]|WEB架构之缓存-应用与硬件缓存(04)|leon的博客

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

1.3.2 Redis

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

图片[7]|WEB架构之缓存-应用与硬件缓存(04)|leon的博客

1.3.2.1  Redis集群Redis Cluster

图片[8]|WEB架构之缓存-应用与硬件缓存(04)|leon的博客

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

1.3.2.2  Redis集群之Proxy(TWEMProxy)

图片[9]|WEB架构之缓存-应用与硬件缓存(04)|leon的博客

1.3.2.3  Redis集群之Codis

图片[10]|WEB架构之缓存-应用与硬件缓存(04)|leon的博客

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

2.1 数据库缓存

2.1.1 Oracle体系结构

图片[11]|WEB架构之缓存-应用与硬件缓存(04)|leon的博客

2.1.2 MySQL缓存体系

图片[12]|WEB架构之缓存-应用与硬件缓存(04)|leon的博客

2.2 操作系统缓存

2.2.1 CPU缓存

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

图片[13]|WEB架构之缓存-应用与硬件缓存(04)|leon的博客

2.2.2 内存缓存

图片[14]|WEB架构之缓存-应用与硬件缓存(04)|leon的博客

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

图片[15]|WEB架构之缓存-应用与硬件缓存(04)|leon的博客

2.2.5 磁盘缓存

图片[16]|WEB架构之缓存-应用与硬件缓存(04)|leon的博客

温馨提示:本文最后更新于2022-12-20 20:57:39,已超过490天没有更新。某些文章具有时效性,若文章内容或图片资源有错误或已失效,请联系站长。谢谢!
转载请注明本文链接:https://blog.leonshadow.cn/763482/2084.html
© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享