20
2018
08

使用memcached来存储session

php默认使用文件来存储用户会话(session),这意味着会话数据的存取都要进行硬盘的读写。内存的带宽大概为10GB/s,硬盘的读取速率为60MB/s左右,两者在性能上有着巨大的差距。如果将会话数据保存到内存中,对于负载高的站点,能带来性能提升。

memcached是一个基于内存的key-value存储引擎,能够存储任意类型的数据。php内核支持使用memcached来存储会话,我们可以通过配置来提升站点的性能。下面是php配置使用memcached的步骤:

  1. 安装memcached: yum install memcached。由于CentOS的基础源中没有memcached,运行这个命令之前应该先添加epel源或者remi源;

  2. 配置: vim /etc/sysconfig/memcached,将options项更改为: options = “-l 127.0.0.1″,即只监听本地的连接;

  3. 启动和配置重启: service memcached start; chkconfig memcached on

  4. 安装php的memcached拓展: yum install php-pecl-memcached

  5. 配置php:如果使用php-fpm,请编辑 php-fpm.d/www.conf文件,否则编辑 php.ini即可,找到 session.save_handler,更改为: session.save_handler = memcached;找到 session.save_path,更改为: session.save_path = "127.0.0.1:11211"

  6. 重启php-fpm: service php-fpm restart

通过以上步骤,通过 php -i | grep session 命令可以看到session.save_path已经指向了memcached,即成功的使用了memcached来保存会话。另外也可以通过登陆memcached服务端查看:

telnet 127.0.0.1 11211
stats items

输入这两条命令,可以看到memcached中有一系列的数据,即php存放到memcached中的数据。

注意:

此处说的memcached非旧式的memcache(先前版本的memcache的服务器端程序也叫做memcached)。如果是旧式的memcache,配置项应改为:

session.save_path = "tcp://127.0.0.1:11211"  

原文链接:https://www.qiquanji.com/post/4808.html

本站声明:网站内容来源于网络,如有侵权,请联系我们,我们将及时处理。

微信扫码关注

更新实时通知

« 上一篇 下一篇 »

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。