Linux版本为 Red Hat 7.4
一、安装
1、下载:http://memcached.org/downloads
解压: tar -xzvf memcached-1.5.3.tar.gz
得到memcached-1.5.3
2、进入目录运行:./configure && make && make install 命令进行编译安装
报错:checking for libevent directory... configure: error: libevent is required. You can get it from http://www.monkey.org/~provos/libevent/
If it's already installed, specify its path using --with-libevent=/dir/
原因:缺少libevent依赖包
3、安装依赖包:
查案libevent 的安装情况:rpm -qa |grep libevent
显示安装: libevent-2.0.21-4.el7.x86_64
libverto-libevent-0.2.5-4.el7.x86_64
缺少libevent-devel
到光盘中查找或者到http://www.rpmfind.net/查找该软件包并安装
rpm -ivh ftp://195.220.108.108/linux/centos/7.4.1708/os/x86_64/Packages/libevent-devel-2.0.21-4.el7.x86_64.rpm
进入memcached-1.5.3 目录下,重复第2步骤的命令后安装成功。
二、使用:
1、启动:memcached -d -m 2048 -u root -l 192.168.20.1 -p 10000
( 内存 ) ( 监听ip ) ( 端口 )
2、查看服务是否启动: pstree | grep memcached
如果没有pstree命令则安装
rpm -ivh ftp://195.220.108.108/linux/centos/7.4.1708/os/x86_64/Packages/psmisc-22.20-15.el7.x86_64.rpm
查看端口:netstat -tunpl | grep 10000
3、停止:pkill memcached
4、登录:telnet 192.168.20.1 10000
(ip) (端口)
telnet命令没有的话
yum install xinetd telnet telnet-server -y
或者用rpm安装。
5、退出:quit
三、memcached操作:
增:(set)
set name1 0 3600 5 (user1)
(key) (标记) (生存时间) (字节数) (value)
删:(delete)
delete name1
改:(replace)
replace name1 0 3600 4(user)
查:(get)
get name1
查看信息:stats
查看数据数量:stats items
查看数据信息:stats cachedump 1 0(标记)
四、PHP操作memcache
1、安装memcache拓展
下载:http://pecl.php.net/package/memcache
解压:tar xf memcache-2.2.7.tgz -C /usr/local/src/
cd /usr/local/src/memcache-2.2.7/
调用:/usr/local/php/bin/phpize 生成configure
生成配置文件(打模块):./configure --enable-memcache --with-php-config=/usr/local/php/bin/php-config
编译安装:make -j 2 && make install
修改配置文件:vim /usr/local/php/php.ini
搜索:.dll
extension=memcache.so 添加
:wq
2、php操作memcache
连接:$mem=new Memcache;
$mem->connect("IP","端口");
增:$mem->set("key","value");
删:$mem->delete("key");
查:$mem->get("key");
清空:$mem->slush();
状态:$mem->getStats();
3、memcache实现跨服务器登录:
服务器共享session
php.ini配置文件修改(支持memcache):php在登录时把session保存到一个共享的memcache服务器上
session.save_handler=memcache
session.save_path="tcp://ip:端口"
项目入口文件设置(php):
session_start();
$mem=new Memcache;
$mem->connect('IP','端口');
$phpsessid=$mem->get(session_name());
$_SESSION=$mem->get("sessarr");
setcookie(session_name(),$phpsessid,o,'/');
登录审核页面:
$mem=new Memcache;
$mem->connect("IP","端口");
$mem->set(session_name(),session_id());
$mem->set("sessarr",$_SESSION);