【问题标题】:how to build a in-memory server side cache in php?如何在 php 中构建内存服务器端缓存?
【发布时间】:2011-12-07 04:22:28
【问题描述】:

我试图通过提供内存缓存来减少数据库访问量。 我知道我可以通过使用会话和 cookie 来获取缓存,但这仅适用于每个客户端。如果在每个会话中都进行一次相同的查询,那么缓存将毫无用处。但我只想访问一次数据库并缓存它。

有没有办法在内存中创建一个服务器端脚本可以访问的缓存?我不想将缓存数据存储在文件中..

【问题讨论】:

标签: php caching server-side in-memory


【解决方案1】:

如果已安装,您可以使用MemCache

另一个选项是在 MySQL 中创建一个存储类型为MEMORY 的表。您仍将使用该数据库,但它会快很多。但是 MemCache 确实会减少数据库的负载,因为您可以将数据缓存在数据库之外,甚至在不同的服务器上。

【讨论】:

    【解决方案2】:

    在共享主机空间上,您可能没有可用的内存缓存。在这种情况下检查APC。如果你在多台机器上运行,Memcache 真的很震撼。如果您在单个 Web 服务器上运行您的网站,APC 将完成相同的工作(开销更低)。

    【讨论】:

    • 谢谢,我也会看看这个,可能更适合我的情况
    【解决方案3】:

    Memecached/Memcache 如果您想拥有多台服务器或能够使用多台机器访问缓存,则它们是最广泛使用的解决方案。

    但是,如果您只希望缓存在本地(在运行 PHP 代码的同一台机器上),您还有其他更简单的选择:

    APC 模块还可以通过apc_addapc_fetch 等将内容存储在内存中……

    或者您可以使用 tmpfs 中的标准文件。这具有完全可移植的优点,如果任何缓存系统使用文件,您都可以非常快速地设置它。

    【讨论】:

      【解决方案4】:

      试试MemCache

      Memcache 模块为高效的缓存守护进程 memcached 提供了方便的过程和面向对象的接口,专门用于减少动态 Web 应用程序中的数据库负载。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-01-24
        • 1970-01-01
        • 2014-12-02
        • 2018-10-08
        • 2017-02-01
        相关资源
        最近更新 更多