ubuntu12.04+nginx+memcached 安装+配置 +保存session备忘(待续)
一 先讲一下ubuntu12.04下安装Memcache
sudo apt-get install memcached
memcached的基本设置:
-p 监听的端口
-l 连接的IP地址, 默认是本机,是监听的服务器IP地址,如果有多个地址的话,可以指定了服务器的IP地址192.168.0.122
-d start 启动memcached服务
-d restart 重起memcached服务
-d stop|shutdown 关闭正在运行的memcached服务
-d install 安装memcached服务
-d uninstall 卸载memcached服务
-u 以的身份运行 (仅在以root运行的时候有效)
-m 最大内存使用,单位MB。默认64MB
-M 内存耗尽时返回错误,而不是删除项
-c 最大同时连接数,默认是1024
-f 块大小增长因子,默认是1.25
-n 最小分配空间,key+value+flags默认是48
-h 显示帮助
memcached -d -m 100 -p 11211 -u root //启动命令,注意重启电脑后,memcached就会关闭,要记得再运行命令
参数说明:-m 指定使用多少兆的缓存空间;-p 指定要监听的端口; -u 指定以哪个用户来运行
安装php在memcache中的模块
sudo apt-get install php5-memcache
修改php.ini的配置(先不做,往下看)
sudo vi /etc/php5/cgi/php.ini
session.save_handler = memcache
session.save_path = “tcp://127.0.0.1:11211″
这些配置,可以先不考虑,因为可以在程序里面动态指定:
@ini_set('session.save_handler','memcache'); //可能需要加@
@ini_set('session.save_path','tcp://192.168.1.21:11211');
重新启动nginx ,有时可能需要重启电脑才有~
在php.ini中关于session
session.save_handler = files 或者 user 或者 memcache //这里三个参数分别表示 session 存储在 本地文件里 数据库里 memcache里;
session.save_path = var/lib/php5/sess* 或者某某数据库 或者 tcp://192.168.1.21:11211 //对应存放路径;
通常有memcache就存memcache里,这比读文件快速的多~当多台web服务器运行时,可以共享一台memcache服务器。
<?php
session_start();
if (!isset($_SESSION['TEST'])) {
$_SESSION['TEST'] = time();
}
$_SESSION['TEST3'] = time();
print $_SESSION['TEST'];
print "<br><br>";
print $_SESSION['TEST3'];
print "<br><br>";
print session_id();
?>
6. 用 sessionid 去 memcached 里查询一下:
<?php
$memcache = memcache_connect('localhost', 11211);
var_dump($memcache->get('19216821213c65cedec65b0883238c278eeb573e077'));
?>
会有看到string(37) "TEST|i:1177556731;TEST3|i:1177556881;"
ubuntu上用files类型时:
liang@liang-OptiPlex-390:/var/lib/php5$ ls
sess_yemanrentest //会生成这个文件
查看memcached内部配置
$sudo telnet localhost 11211
如果连接不上再跑一遍:memcached -d -m 100 -p 11211 -u root //启动命令
$stats 显示memcached内部配置信息
比较好的memcached内部分析连接:
http://www.2cto.com/os/201203/125164.html
http://www.cnblogs.com/technet/archive/2011/09/11/2173485.html
http://tech.idv2.com/2008/07/10/memcached-001/
http://www.cnblogs.com/czh-liyu/archive/2010/04/27/1722084.html
2、解构技能,找出实现80%效果的那20%
3、不要一心二用
4、练习练习再练习!然后获得即时反馈
5、坚持,不要在低谷期放弃