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

时间:2017-02-17 10:49:59

标签: java php spring

我以前开发过Java Web应用程序(Spring,Spring Boot),我将大量数据缓存在内存中,以大大提高可支持的同时用户的效率和数量,但我很难搞清楚如何一个PHP应用程序可以实现相同的目的吗?

是否采用全局方式执行此操作,或使用会话变量进行最佳等效?

3 个答案:

答案 0 :(得分:3)

PHP是单页语言(如果我们谈论WEB)。 请查看此http://php.find-info.ru/php/016/ch20lev1sec5.html和此http://www.slideshare.net/laruence/the-php-life-cycle

如果你需要在内存中实时缓存大量数据(比如每次都不在DB中查询),你需要使用一些基于内存的存储来保持代码中的持久连接

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

对不起英语:)

答案 1 :(得分:3)

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

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

以下可以是您的用例

  • 实时发布/订阅通知系统
  • 实时分析后端
  • 任务队列和作业系统
  • 高分排行榜

答案 2 :(得分:2)

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