在ubuntu下安装memcache

本文详细介绍如何在Ubuntu系统上安装Memcache,并将其作为PHP的session.save_handler使用的方法。包括安装memcached服务、PHP的memcache模块及配置过程。
使用Memcache的网站一般流量都是比较大的,为了缓解数据库的压力,让Memcache作为一个缓存区域,把部分信息保存在内存中,在前端能 够迅速的进行存取。 下面来介绍一下如何安装和使用memcache。

安装memcache


在ubuntu下安装memcache是非常的简单和快捷的,直接安装即可(本人使用的是ubuntu 10.04LTS)
sudo apt-get install memcached
memcached -d -m 50 -p 11211 -u root


参数说明:-m 指定使用多少兆的缓存空间;-p 指定要监听的端口; -u 指定以哪个用户来运行。 查看更多启动参数

接下来是要安装php的memcache模块和memcached模块

sudo apt-get install php5-memcache
sudo apt-get install php5-memcached 


修改php.ini 的全局设置,本人的php.ini文件在/etc/php5/apache2/下
sudo vi /etc/php5/apache2/php.ini

找到session.save_handler,并设为 session.save_handler = memcache,把session.save_path前面的分号去掉,并设置为 session.save_path = “tcp://127.0.0.1:11211″
session.save_handler = memcache
session.save_path = “tcp://127.0.0.1:11211″


或者某个目录下的 .htaccess :
php_value session.save_handler “memcache”
php_value session.save_path “tcp://127.0.0.1:11211″



再或者在某个一个应用中:
ini_set(“session.save_handler”, “memcache”);
ini_set(“session.save_path”, “tcp://127.0.0.1:11211″);


使用多个 memcached server 时用逗号”,”隔开,并且和 Memcache::addServer() 文档中说明的一样,可以带额外的参数”persistent”、”weight”、”timeout”、”retry_interval” 等等,类似这样的:”tcp://host1:port1?persistent=1&weight=2,tcp://host2:port2″ 。

之后记得要重启apache服务器
sudo /etc/init.d/apache2 restart

查看一下phpinfo()中的 “Registered save handlers” 会有 “files user memcache” 这3个可用。如果没有的话重新安装一下或者确定自己是否有重启apache服务器。


接下来要测试一下是否安装成功,编辑文件cache.php,内容为:
view plaincopy to clipboardprint?

error_reporting(E_ALL);  
$memcache = new Memcache;  
$memcache->connect('localhost', 11211) or die("Could not connect");  
      
$memcache->set('key', 'This is a test!', 0, 60);  
$val = $memcache->get('key');  
echo $val;  


如果能看到 This is a test!,表示正常安装成功了。
用 memcache 来作 PHP 的 session.save_handler
view plaincopy to clipboardprint?

session_start();  
$_SESSION["UserID"]=123;  
echo session_id();  



记下seesion_id,然后编辑一个新的文件,内容为:
view plaincopy to clipboardprint?

$memcache = memcache_connect('localhost', 11211);  
var_dump($memcache->get('f4oi3gkal46t1vbb8kd98srff3'));   // f4oi3gkal46t1vbb8kd98srff3 必须换成你上面取得的session_id  


如果显示 string(13) “UserID|i:123;” 那么表示你成功使用了memecache。

用 memcache 来存储 session 在读写速度上会比 files 时快很多,而且在多个服务器需要共用 session 时会比较方便,将这些服务器都配置成使用同一组 memcached 服务器就可以,减少了额外的工作量。缺点是 session 数据都保存在 memory 中,持久化方面有所欠缺,但对 session 数据来说也不是很大的问题。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值