单体架构
flowchart TD subgraph 应用程序 A[应用程序] B[数据库] C[文件] end A --> B A --> C
垂直架构
flowchart TD subgraph 应用服务器 A[应用程序] end subgraph 数据库服务器 B[数据库] end subgraph 文件服务器 C[文件] end A --> B A --> C
使用缓存改善网站性能
flowchart TD subgraph 应用服务器 A[应用程序] end subgraph 数据库服务器 B[数据库] end subgraph 文件服务器 C[文件] end subgraph 分布式缓存服务器 D[缓存] end A --> B A --> C A --> D
Memcache
是一个高性能的分布式内存对象缓存系统,用于动态 web 应用以减轻数据库负载。 在内存里维护一个统一巨大的 hash 表,数据库存在该 bash 中
Redis
一个开源使用的 ANSIC 语言编写、支持网络、可基于内存也可以持久化的日志型、Key-value 数据库
Squid
一个高性能的代理缓存服务器
三种缓存使用模式
Cache-Aside Pattern(旁路缓存模式)
将缓存的读取和更新操作与数据库分开处理 适用场景:读多写少,更新不频繁,高并发下的读性能优化
读写穿透
将数据库与缓存紧密结合,使应用程序在读写数据时都通过缓存层操作,强一致性
异步缓存写入
数据先写入缓存,再异步批量写入数据库,最终一致性