gpt4 book ai didi

php - 在 PHP 中使用内存缓存

转载 作者:可可西里 更新时间:2023-11-01 12:50:20 25 4
gpt4 key购买 nike

我想开始在 PHP 中使用内存缓存(在 Ubuntu 9.10 上)。网上有很多信息似乎显示了如何执行此操作。令人惊讶的是,没有一篇文章(到目前为止我已经看过)明确说明您是否需要在尝试使用内存缓存进程之前运行它,或者是否通过 PHP 客户端库简单地调用 new MemCache() ,将产生一个进程(如果尚未运行)。

从到目前为止我阅读的各种文档中,这些是我认为有意义的步骤:

  1. 在你的机器上安装内存缓存(有几个文档展示了如何做到这一点)
  2. 修改您的 php.ini 文件并将与内存缓存相关的常量/标志设置为对您的环境有意义的值
  3. 在 ini.d 中创建一个初始化脚本以将内存缓存作为守护进程启动
  4. 重启 Apache 守护进程

第 3 部分是我需要确认的部分,因为到目前为止我看到的文档都没有提到内存缓存进程的生命周期。

有这方面经验的人可以确认这是否是正确的步骤吗?另外,如果我错过了一步,请告诉我。

顺便说一句,由于我对 Linux 比较陌生,如果有人可以发布一个运行内存缓存守护进程所需的初始化脚本示例(假设我上面概述的步骤是正确的),我将不胜感激)

最佳答案

起初,memcached 和 Apache+PHP 是两个完全不相关的东西。唯一的问题是 PHP 正在连接到 memcached 守护进程。

所以,是的,memcached (请注意末尾的“d)必须在您尝试使用它之前启动:当您尝试连接到 memcached 服务器时它没有运行,您只是无法连接——它不会产生新的守护进程或任何东西。

使用一个简单的比较:如果你的 Apache 服务器没有启动,你尝试使用你的浏览器访问它,你会得到一个“无法连接”的错误;这与尝试连接到 memcached 的 PHP 完全相同:它将无法连接。


现在,对于安装过程,这里有一些注意事项,对于您所说的看起来不太好的部分:

  • 在你的机器上安装 memcached
    • 如果您使用分发机制进行安装,它应该已经在/etc/init.d/中创建了脚本
    • 它应该已经启动了守护进程
    • 提醒一下,要使用 Ubuntu 安装某些东西,您应该使用 apt-get install memcachedaptitude install memcached
  • 在修改 php.ini 之前,您必须安装 PHP 的 memcache 扩展——这样 PHP 就有连接到 memcached 的功能。
    • 这可以使用您的发行版的 php5-memcache 包来完成
    • 或者使用pecl install memcache 命令,它将从pecl.php.net 下载源代码并编译它们——这意味着您将需要编译软件所需的一切。


编辑:在这里比在评论中更容易回答

我说安装 memcached 应该没问题 -- 在 Ubuntu 上,似乎有一个陷阱:

使用这个:

ps -Alf | grep memcached

我没有看到任何正在运行的守护进程。

当我尝试启动守护进程时,我得到以下信息:

$ sudo /etc/init.d/memcached start
Starting memcached: memcached disabled in /etc/default/memcached.


因此,在 Ubuntu 上,您必须编辑 /etc/default/memcached 并更改它;而不是这个:

# Set this to yes to enable memcached.
ENABLE_MEMCACHED=no

它应该包含:

# Set this to yes to enable memcached.
ENABLE_MEMCACHED=yes

然后,启动 memcached 应该是可能的:

$ sudo /etc/init.d/memcached start
Starting memcached: memcached.
test@tests: ~/temp
$ ps -Alf | grep mem
4 S nobody 3813 1 0 80 0 - 30025 ep_pol 00:17 pts/4 00:00:00 /usr/bin/memcached -m 64 -p 11211 -u nobody -l 127.0.0.1
0 R test 3819 2690 0 80 0 - 1834 - 00:17 pts/4 00:00:00 grep --color=auto mem


注意:现在 memcached 已启用,它应该随您的系统自动启动,每次您重新启动它。

关于php - 在 PHP 中使用内存缓存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2393300/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com