Linfinity

Never say never.
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

Memcached缓存系统

Posted on 2019-01-11 12:23  Linfinity  阅读(106)  评论(0)    收藏  举报

一、基本介绍

 MemCache是一个自由、源码开放、高性能、分布式的内存对象缓存系统,用于动态Web应用以减轻数据库的负载

 MemCaChe是一个存储键值对的HashMap,在内存中对任意的数据采用k-y存储,数据可以来自数据库调用、API调用,或者页面渲染的结果。

它的工作机制是在内存中开辟一块空间,然后建立一个HashTableMemcached管理这些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、windowsphp_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’);