PHP 应用程序如何将数据保存在内存中?

How can PHP application keep data in memory?

我之前开发过 Java 网络应用程序(Spring、Spring Boot),我将大量数据缓存在内存中,以大大提高效率和并发用户数可以支持,但我很难弄清楚 PHP 应用程序如何实现相同的功能?

是否有一种全局方法可以做到这一点,或者是使用会话变量的最佳等效方法?

您可以创建自定义缓存 class 并使用它(单例 class 可能是另一种解决方案)。

PHP 是 single-paged 语言(如果我们谈论的是 WEB)。 看看这个http://php.find-info.ru/php/016/ch20lev1sec5.html and this http://www.slideshare.net/laruence/the-php-life-cycle

如果您需要将大量数据实时缓存在内存中(比如无需每次(每次请求)都在数据库中进行查询),您需要使用一些 memory-based 存储来保持持久性代码中的连接。

此外,当您在 php 变量中使用大量数据时要小心,垃圾收集器工作正常但仅适用于 small-time 请求。查看 unset() 表达式,用于强制清理堆。

抱歉英语:)

这取决于您的要求。如果我是你,我会更喜欢 REDIS,它是实时并发数据库的交易破坏者

  • 一个空的 redis 实例使用 ~ 1MB 内存。
  • 100 万个小键 -> 字符串值对使用 ~ 100MB 内存。
  • 100万个Keys -> Hash值,表示一个对象有5个字段, 使用 ~ 200 MB 的内存。(您可以同时拥有 100 万个用户,最少 200 Mb)

以下可以是您的用例

  • Real-time publish/subscribe 通知系统
  • Real-time 分析后端
  • 任务队列和作业系统
  • 高分排行榜