一、基本介绍
MemCache是一个自由、源码开放、高性能、分布式的内存对象缓存系统,用于动态Web应用以减轻数据库的负载。
MemCaChe是一个存储键值对的HashMap,在内存中对任意的数据采用k-y存储,数据可以来自数据库调用、API调用,或者页面渲染的结果。
它的工作机制是在内存中开辟一块空间,然后建立一个HashTable,Memcached管理这些HashTable,所以速度非常快。
二、MemCache安装
MemCache的安装分为服务端安装和客户端安装:
所谓服务器端的安装就是在服务器(一般都是linux系统)上安装Memcache实现数据的存储。
所谓客户端的安装就是指php(或者其他程序,Memcache还有其他不错的api接口提供)去使用服务器端的Memcache提供的函数,需要php添加扩展。
服务器端安装
1、windows安装memcached(服务器端)
(1)安装时候管理员启动CMD
进入到安装包所在路径
(2)执行安装
memcached.exe -d install #安装 memcached.exe -d start #开启 mencached.exe -p port start #多开
(3)测试安装是否成功
Telnet 127.0.0.1 11211进入控制台,使用stats命令可以查看memcache的基本信息。
·
2、Linux安装memcached(服务器端)
基本依赖 mount /dev/cdrom /media/CentOS/ yum --disablerepo=\* --enablerepo=c6-media install gcc gcc-c++ 安装libevent tar zxvf libevent-2.0.21-stable.tar.gz cd libevent-2.0.21-stable ./configure --prefix=/usr/local/libevent make && make install 安装memcached tar zxvf memcached-1.4.27.tar.gz cd memcached-1.4.27 ./configure --prefix=/usr/local/memcached --with-libevent=/usr/local/libevent/ make && make install
开启:
由于root用户不能直接开启memcache,所以我们需要创建一个memcache用户。
创建一个用户:
useradd memcache
passwd memcache
切换用户
su memcache
后台开启
./bin/memcached &
客户端安装
1、windows下php_memcache扩展的安装
第一步:获取对应版本的扩展安装包
第二步:将php_memcache.dll这个文件放到php目录的扩展ext目录中
第三步:在php.ini中添加开启项即可
2、linux下安装php_memcache的扩展
第一步:获取安装包
第二步:解压安装包并进入目录(注:此时不能直接编译安装)
第三步:使用phpize这个命令安装memcache的扩展(注:直接使用phpize需配置环境变量,否则写全路径)
第四步:开始编译安装memcache的扩展
./configure && make && make install
第五步:在php.ini中添加memcache的扩展
vim /usr/local/php/lib/php.ini
#添加
extenion=memcache.so
第六步:重启apache服务器
三、php连接memcache
连接:
$mem = $mem = new Memcache(); $mem -> connect('127.0.0.1','11211'); 分布式部署: $mem = $mem = new Memcache(); $mem -> addServer('127.0.0.1','11211'); $mem -> addServer('127.0.0.1','11212'); $mem -> addServer('127.0.0.1','11213');
使用
php的memcache的基本操作 set():设置一的key给它赋值 set(key,val,zip,expire) key:键名 val:键值 zip:数据是否压缩,压缩:MEMCACHE_COMPRESSED expire:过期时间,0:永不过期 add():添加一个key给它赋值,它只能添加一个键名,不能添加一个已经存在的键名。 get():得到Key的值 replace():修改一个key的值 delete();删除一个Key的值 increment:给一个键名增加值 decrement:给一个键名减去值
thinkphp大S函数的使用:
1.初始化配置 S(array( 'type' =>'memcache', 'host'=>'127.0.0.1', 'port'=>'11211',) ); 2.给缓存数据赋值 S(键名,键值); 例如: S(‘list’,$data); 3.读取缓存数据的值 S(键名); 例如: S(‘list’);
浙公网安备 33010602011771号