php session memcached,php安装memcached并支持session

php安装memcached并使用memcached,首先需要服务器有memcache服务运行,如果需要本地安装memcache服务,请参考这篇文章:

memcache安装教程

在安装php的memcached扩展前,我们需要先安装一个lib库,不然后面会报错:

php configure: error: memcached support requires libmemcached.

root [~]# wget https://launchpad.net/libmemcached/1.0/1.0.18/+download/libmemcached-1.0.18.tar.gz

root [~]# tar -zxvf libmemcached-1.0.18.tar.gz

root [~]# cd libmemcached-1.0.18

root [~]# ./configure  --with-memcached

root [~]# make

root [~]# make install

安装完成后,我们开始安装php memcached。

前往php扩展网站下载memcached:

http://pecl.php.net/package/memcached

安装如下:

root [~]# wget http://pecl.php.net/get/memcached-2.2.0.tgz

root [~]# tar -zxvf memcached-2.2.0.tgz

root [~]# cd memcached-2.2.0

#你的php路径

root [~]# /php/bin/phpize

root [~]# ./configure --with-php-config=/opt/app/php/bin/php-config

root [~]# make

root [~]# make install

安装完成后,会告知我们动态链接库在哪里:

Installing shared extensions: /***/php/lib/php/extensions/no-debug-non-zts-20131226/

建议复制到extensions目录下,并重新配置php:

root [~]# cd /***/php/lib/php/extensions/

root [~]# cp no-debug-non-zts-20131226/memcached.so ./

root [~]# cd /***/php/

root [~]# vi php.ini

#加入一行声明

extension=memcached.so

重启php-fpm:

root [~]# kill -USR2 `cat /***/php/var/run/php-fpm.pid`

此时,可以看到php安装memcached完成:

root [~]# php -r "phpinfo();" | grep memcached

memcached

memcached support => enabled

libmemcached version => 1.0.18

memcached.compression_factor => 1.3 => 1.3

memcached.compression_threshold => 2000 => 2000

memcached.compression_type => fastlz => fastlz

memcached.serializer => php => php

memcached.sess_binary => 0 => 0

memcached.sess_connect_timeout => 1000 => 1000

memcached.sess_consistent_hash => 0 => 0

memcached.sess_lock_expire => 0 => 0

memcached.sess_lock_max_wait => 0 => 0

memcached.sess_lock_wait => 150000 => 150000

memcached.sess_locking => 1 => 1

memcached.sess_number_of_replicas => 0 => 0

memcached.sess_prefix => memc.sess.key. => memc.sess.key.

memcached.sess_randomize_replica_read => 0 => 0

memcached.sess_remove_failed => 0 => 0

memcached.sess_sasl_password => no value => no value

memcached.sess_sasl_username => no value => no value

memcached.store_retry_count => 2 => 2

memcached.use_sasl => 0 => 0

Registered save handlers => files user memcached

php安装memcache和memcached类似,需要去memcache下载源码编译即可:

http://pecl.php.net/package/memcache

php session默认使用file,存储在/tmp下面,为了减少磁盘IO和分布式缓存,我们可以将php的session设置为memcache或memcached,二者在配置php.ini时有些差异。

设置memcache:

session.save_handler = memcache

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

设置memcached:

session.save_handler = memcached

session.save_path = "localhost:11211"

设置memcached时,无法直接通过php读取到memcached内容,而通过设置memcache可以直接读取内容。

测试代码如下:

session_start();

if (!isset($_SESSION['TEST'])) {

$_SESSION['TEST'] = time();

}

$_SESSION['TEST2'] = time();

print $_SESSION['TEST'];

print "
";

print $_SESSION['TEST2'];

print "
";

print session_id();

print "
";

$memcache = new Memcached;

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

var_dump($memcache->get(session_id()));

print "
";

$memcache->set('aaaa', 'hello ranshy');

print $memcache->get('aaaa');

显示结果:

1484898619

1484898899

1jldgkbr59hi41be52mdpumig1

string(37) "TEST|i:1484898619;TEST2|i:1484898898;"

hello ranshy

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值