关于Memcached
Memcached是来自数据库调用,API调用或页面呈现的结果的小块任意数据(字符串,对象)的内存中键值存储。为什么要在Memcached中存储会话?
Memcached将会话存储在内存中,而不是文件。因为内存比读取文件更快,您的网站将表现更好,减少加载时间。什么是捕获?
会话将仅存储在内存中,当您的VPS关闭或重新启动时,内存不能保存数据,因此会在关闭时删除会话。建立
在开始本教程之前,请确保您已经开始运行PHP 5安装,您可以在PHP帮助部分找到有关如何执行此操作的教程。 确保您已安装EPEL存储库,您需要用于Memcached的EPEL存储库,因为Memcached在基本存储库中不可用。rpm -Uvh http://mirrors.kernel.org/fedora-epel/6/x86_64/epel-release-6-8.noarch.rpm不需要更新软件包到最新的可用版本,但建议。
yum update
安装Memcached
让我们开始安装Memcached。yum install memcached安装Memcached后,打开Memcached with VI的配置文件。
vi /etc/sysconfig/memcached你会看到:
PORT="11211" USER="memcached" MAXCONN="1024" CACHESIZE="64" OPTIONS=""Memcached不受密码或用户名保护,所以任何人都可以通过端口11211访问它。我们不希望这样,所以我们将允许只有您的VPS访问它通过在'OPTIONS ='部分插入一些选项:
PORT="11211" USER="memcached" MAXCONN="1024" CACHESIZE="64" OPTIONS="-l 127.0.0.1"您可能想更改cachesize;默认是64MB。只要Memcached达到此限制,它将删除旧条目,以释放新条目的内存。除非你有一个非常庞大的网站,64MB应该是罚款。 让我们开始Memcached。
/etc/init.d/memcached startMemcached在启动时默认不启动,我们希望它在启动时启动。
chkconfig --levels 235 memcached on
安装Memcached PHP扩展
我们需要安装几件事情,让我们从开发工具开始。这些是需要从源代码构建:yum groupinstall "Development Tools"之后,我们将安装更多的东西。前两个是构建扩展所必需的,最后两个是在PHP中运行/安装扩展所必需的。
yum install zlib-devel libmemcached-devel php-pear php-pecl-memcached现在我们将使用我们刚刚安装的PECL(PHP Extension Community Library)安装PHP Memcached扩展。
pecl install -f memcached-1.0.0
将PHP.ini更改为将Memcached设置为会话处理程序
最后要做的是配置PHP使用Memcached作为会话处理程序。要做到这一点,你必须用VI打开 /etc/php.ini中 。vi /etc/php.ini搜索如下所示的[[会话]]区域(从底部到顶部滚动更容易)。
[Session] ; Handler used to store/retrieve data. ; http://www.php.net/manual/en/session.configuration.php#ini.session.save-handler session.save_handler = files并将其更改为:
[Session] ; Handler used to store/retrieve data. ; http://www.php.net/manual/en/session.configuration.php#ini.session.save-handler session.save_handler = memcached session.save_path = "127.0.0.1:11211"如您所见,我们已将session_handler更改为memcached,并将端口11211上的本地主机的路径更改为Memcached操作的路径。现在让我们重新启动Apache来重新加载PHP.ini文件。
service httpd restart所有会话现在存储在Memcached而不是文件中。 您可能会看到以下错误:
Starting httpd: httpd: apr_sockaddr_info_get() failed for memcached httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for ServerName您可以通过编辑apache配置来解决此问题:
vi /etc/httpd/conf/httpd.conf并取消注释ServerName行:
ServerName localhost
更多Memcached
Memcached是存储密集型查询的理想选择,它不需要在每个页面视图上实时,但是以指定的时间增量(即每10分钟)。有关如何使用Memcached的脚本里面的详细信息,我建议你看一下第三步在 这个教程。
提交者:Tim Kotkamp