【问题标题】:How to save a variable at application level in php?如何在php中保存应用程序级别的变量?
【发布时间】:2010-11-29 09:45:55
【问题描述】:

如何在 php 中保存应用程序级别的变量(所有用户相同),一段时间后会更新?

我试图找到它。我找到了以下解决方案:

  1. 使用文件处理实现。
  2. 缓存(Memcache 或 APC)
  3. 使用数据库支持实现

2 被认为是最好的 (AFAIK)。 (我不允许在服务器上安装任何东西)

其他两个(上面提到的)或任何其他选项呢?我如何实现这些?我有点担心,因为流量适中(但不好的是我仍然无法使用任何缓存机制)。我们只需要在应用程序级别保存大约 255 字节的缓冲区内容。

任何 sn-ps、指针或任何形式的帮助都将受到高度赞赏。

谢谢。

【问题讨论】:

  • 请定义“高流量”。

标签: php


【解决方案1】:

您需要永久存储,而不是缓存或类似的东西。 如果您的应用程序尚未使用数据库,您可以从以下几个选项中进行选择:

  • 写入一个文本文件,一个简单的单行条目,或者最好采用 xml、json 等格式
  • 写入轻量级存储引擎,如 sqlite、简单存储 (Amazon S3)

如果您的应用已经使用数据库,为什么不将该数据存储在单独的表中?

【讨论】:

  • 感谢大家的快速帮助。我真的很担心速度。我只想快速保存和检索信息。另一个问题是每秒会有很多请求(可能同时有多个请求),所以你们能推荐最好的方法来实现这一点。实际上令牌需要在 N 分钟后更新(其中 N = 随机),并且只有在请求进来时才更新。所以,我需要在被请求的文件中编写逻辑(这只有一个文件)。
  • 顺便说一句,让我再次告诉你这个问题,也许你可以贡献更多的想法 - 我需要返回相同的令牌(应用程序范围,将从数据库中检索)给所有用户 N随机分钟(N 的值取决于令牌)。 N 分钟后,必须用某个随机令牌替换令牌(接下来的 M 分钟)。要求是确保所有用户一次共享相同的令牌(显然对于该时间范围内发出的所有请求)。
【解决方案2】:

这就是数据库的用途。如果您不想花大量时间设置大型数据库应用程序,请尝试sqlite

【讨论】:

    【解决方案3】:

    一些缓存(尤其是内存缓存)是有损的,并且大多数在重新启动后都无法生存。使用数据库。

    【讨论】:

      【解决方案4】:

      如果您没有使用数据库的选项,可以考虑将数据写入磁盘上的文件。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2020-04-20
        • 2011-10-04
        • 2013-09-14
        • 1970-01-01
        • 1970-01-01
        • 2017-08-08
        • 1970-01-01
        相关资源
        最近更新 更多