北屋教程网

专注编程知识分享,从入门到精通的编程学习平台

在memcached管理php的session

PHP的session(会话管理)一般是以文件形式进行,而在多个Web服务器之间进行session管理时memecached会比文件管理方式更加方便。在这里介绍如何使用memcached管理PHP的session。

安装

在PHP使用memcached的模块有以下2种,在这里使用memcached模块。

  • memcache:php-pecl-memcache
  • memcached:php-pecl-memcached

(1) 安装memcached及php-pecl-memcached

# yum install memcached php-pecl-memcached

(2) 启动memcached

# systemctl enable memcached

# systemctl start memcached

修改配置文件

通过以下设定PHP的默认session管理会变为memcached。

(1) php.ini

# vi /etc/php.ini

; session.save_handler = files # 注释

; session.save_path = "/var/lib/php/session" # 注释

(2) memcached.ini

# vi /etc/php.d/memcached.ini

session.save_handler = memcached

session.save_path = "tcp://localhost:11211" # 添加

(3) www.conf

# vi /etc/php-fpm.d/www.conf

; php_value[session.save_handler] = files # 注释

; php_value[session.save_path] = /var/lib/php/session # 注释

php_value[session.save_handler] = memcached # 添加

php_value[session.save_path] = "localhost:11211" # 添加

# systemctl reload php-fpm

(4) 在PHP程序里进行设定

如果没有修改相关配置文件,可以通过如下方法在PHP程序里进行配置。

$session_save_path = 'tcp://localhost:11211';

if (ini_set('session.save_handler', 'memcache') && ini_set('session.save_path', $session_save_path)){

session_start;

}

(5) 确认

可以使用安装memcached时安装的memcached-tool。

# memcached-tool localhost:11211 dump

结语

PHP的session默认有效期间是24分(1440秒),而这个默认值可以通过/etc/php.ini的session.gc_maxlifetime进行调整。

除了session管理以外也可如下使用memcached。

$mc = new Memcached;

$mc->addServer('localhost', 11211);

$mc->set('foo','var',60);

var_dump($mc->get('foo'));

$mc->add('hoge','fuga',60);

$mc->add('hoge','piyo',60);

var_dump($mc->get('hoge'));

$mc->flush;

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言