前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >PHP中对象缓存方式的选择

PHP中对象缓存方式的选择

作者头像
ianzhi
发布2023-10-19 10:14:34
1530
发布2023-10-19 10:14:34
举报
文章被收录于专栏:LNMP开发那些事LNMP开发那些事

PHP中对象缓存方式的选择

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

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

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

  • 不需要安装额外的扩展、中间件
  • 支持几乎所有运行环境
  • 支持文件锁

缺点:

  • 相对内存形式的缓存方式,性能一般
  • 存在并发读写时,性能极差(并发写,使用文件锁的情况)
  • 占用磁盘容量
  • 不好统计键调用次数等

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

二、基于数据库实现缓存

优点:

  • 支持几乎所有运行环境,仅需要安装对应数据库的驱动程序,大部分环境默认提供至少一种数据库驱动程序
  • 支持锁
  • 方便进行复杂的查询统计

缺点:

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

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

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

优点:

  • 读写性能好
  • 支持集群运行
  • 支持多数据结构(Redis)
  • 本身支持缓存淘汰策略

缺点:

  • 需要额外的中间件
  • 需要额外的扩展、包支持
  • 大多数主机环境不支持(可喜的是随着公有云的发展,主机环境正在被新的虚拟化方式替代)

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

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • PHP中对象缓存方式的选择
相关产品与服务
消息队列 TDMQ
消息队列 TDMQ (Tencent Distributed Message Queue)是腾讯基于 Apache Pulsar 自研的一个云原生消息中间件系列,其中包含兼容Pulsar、RabbitMQ、RocketMQ 等协议的消息队列子产品,得益于其底层计算与存储分离的架构,TDMQ 具备良好的弹性伸缩以及故障恢复能力。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档