什么是Memcache?
是分布式高速缓存系统;
分布式:可以在多台服务器上同时安装Memcache服务,达到一个很好的集群效果;
高速:Memcache所有的数据都是维护在内存中的;
它的读取速度比我们存储在硬盘中的数据的读取速度快很多;
Memcache有什么用?
当我们的应用访问量特别大的时候,我们数据库的压力也会特别大,Memcache的出现可以在应用和数据库当中增加一个缓冲层;
我们之前已经在数据库读取过的数据,当第二次再访问的时候
我们可以直接访问Memcache去读取这些数据,从而减轻Mysql数据库的压力;
怎样理解Memcache?
Memcache是只有一张表的数据库,这张表有两个字段,分别是主键key和value,value中就是我们保存的数据,key就是这份数据的id,用来保证我们在查找时的唯一性,在脑海中要生成一个简单的模型;
Memcache使用场景
1、非持久化存储:对数据存储要求不高;
也就是说如果这份数据丢失了也不会对我的应用造成太大的影响;
2、分布式存储:不适合单机使用;
Memcache对于内存的消耗很大,Memcache和数据库最好是分两台服务器放置;
3、Memcache是key/value存储:格式简单,不支持List、Array数据格式;
安装说明
我们在Linux系统上安装软件一般有两种方法:
1、编译安装(Libevent Memcache)
我们在安装Memcache的时候是需要先安装Libevent这个扩展,编译安装的好处是你可以在安装的时候进行一些自定义的设置,比如我们可以指定软件安装到哪里;相对而言不太好的地方是,假如你在编译的时候出现了一些错误,而你又对Linux了解不是特别多的情况下,处理错误的时候会比较困难;
2、使用Linux自带依赖管理工具
CentOS的yum或者是Ubuntu的apt-get;
注意:
Memcache有两个版本分别是Memcache和Memcached
推荐使用Memcached,它是Memcache的升级版本,比Memcache有了更多的升级操作并且速度和稳定性上都比Memcache要好很多;
Memcached服务端安装
首先第一步使用依赖管理工具安装Memcached
yum install memcached
//选择y安装完成
Is this ok [y/N]: y
启动Memcached
//-d(守护进程的模式去启动它,当你从终端窗口退出后这个程序依然可以进行)
//-l(IP地址,这里用本机的IP地址127.0.0.1)
//-p(端口号,11211)
//-m(为Memcached分配多少的内存以M为单位,150)
//-u(以哪个用户的身份启动Memcached,这里直接使用超级管理员root身份)
/usr/bin/memcached -d -l 127.0.0.1 -p 11211 -m 150 -u root
查看是否正常启动
ps -ef | grep memcach
客户端的安装
1、安装Libmemcached
下载Libmemcached
wget http://launchpad.Net/libmemcached/1.0/1.0.10/+download/libmemcached-1.0.10.tar.gz
解压Libmemcached
tar zxvf libmemcached-1.0.10.tar.gz
进入到解压包目录
cd libmemcached-1.0.10
配置config到指定目录
./configure --prefix=/usr/lib/libmemcached
make命令编译安装
make && make install
编译安装过程大概需要5分钟左右
2、为PHP安装memcached扩展
下载memcached
wget http://pecl.php.net/get/memcached-2.2.0.tgz
解压memcached
tar zxvf memcached-2.2.0.tgz
进入到解压包目录
cd memcached-2.2.0
Linux下用phpize命令为PHP安装扩展
phpize
再列出文件下所有文件就会多出config配置文件,然后运行该文件
./configure
这个时候提示错误找不到php-config文件
手动帮它指引一下php-cofing文件地址,php-cofing文件地址根据各自安装的目录填写,如果不知道的情况下,在服务器根目录使用查找命令
find -name php-config
手动帮它指引一下php-cofing文件地址
./configure --with-php-config=/usr/local/php/bin/php-config
回车后发现又报了一个错误,找不到我们刚才安装的Libmemcached
这时再告诉它我们刚才安装的Libmemcached的路径
./configure --with-php-config=/usr/local/php/bin/php-config --with-libmemcached-dir=/usr/lib/libmemcached
回车后发现又报错了
说我们不支持sasl这个功能,按照它给的指引运行下面的命令
./configure --with-php-config=/usr/local/php/bin/php-config --with-libmemcached-dir=/usr/lib/libmemcached --disable-memcached-sasl
回车设置成功
然后先make编译一下
make
提示我们已经成功了,最好不要忘了测试一下
这里我们直接编译安装
make install
提示我们扩展已经安装完成并且告诉我们了扩展目录
接下来我们需要在PHP扩展文件中把这个扩展加进来,首先编辑一下php.ini的配置文件,把这个扩展加进去
vim /usr/local/php/etc/php.ini
打开配置文件后直接shift+g跳到文件最后一行,把扩展加上
extension=memcached.so
然后保存退出
更改完php配置文件后要重启服务器
lnmp restart
完成后查看一下php扩展
php -m
然后查看一下有没有memcached这个扩展
php -m | grep memcached
到这一步就说明我们已经为PHP安装好了memcached扩展
接下来我们要看一下我们到底可不可以使用memcached扩展
去连接memcache