PHP中对象缓存方式的选择 – 心得体会

类似于Map的键值类型对象缓存对于提高应用的性能有很大的作用,实现此类缓存的方式也比较多,那么该如何选择对象缓存的方式呢?由于PHP常用的运行方式主要是基于FPM的形式,这篇文章暂不考虑常驻内存形式的缓存。

一、基于文件系统实现缓存

这应该是比较常见的一种形式,基于文件系统的缓存优点:

不需要安装额外的扩展、中间件

支持几乎所有运行环境

支持文件锁

缺点:

相对内存形式的缓存方式,性能一般

存在并发读写时,性能极差(并发写,使用文件锁的情况)

占用磁盘容量

不好统计键调用次数等

适合的场景:单机运行,单键极少写请求,需要持久化的情况,比如动态页面的静态化。

二、基于数据库实现缓存

优点:

支持几乎所有运行环境,仅需要安装对应数据库的驱动程序,大部分环境默认提供至少一种数据库驱动程序

支持锁

方便进行复杂的查询统计

缺点:

作为最常遇到的性能问题点,不太适合用于缓存场景

读写性能一般

适合的场景:无法控制宿主安装程序或者扩展。

三、基于Redis/Memcached等中间件实现缓存

优点:

读写性能好

支持集群运行

支持多数据结构(Redis)

本身支持缓存淘汰策略

缺点:

需要额外的中间件

需要额外的扩展、包支持

大多数主机环境不支持(可喜的是随着公有云的发展,主机环境正在被新的虚拟化方式替代)

适合的场景:只要支持安装,适合绝大多数场景。

上一篇: 散热风扇由哪些零部件构成
下一篇: 行车主钩限位开关:原理、作用与维护保养全解析

相关推荐

2025年北京居住证与工作居住证办理全攻略:政策更新、材料准备及高效申领步骤详解
织梦dedecms怎么更换模板
Snow的解释和发音 「欧路词典」英汉-汉英词典 为您提供权威的英语单词解释
waltz的中文释义
国产土拨鼠之谜
什么是超频?▷➡️