蹡蹡!小宏同学又来了,既然是Linux高级部分嘛,理所当然应该多说一点,所以,小宏马不停蹄地寻找资料,就是为了今天能跟大家分享memcache的故事。还是那句话,希望大神们多多指点,毕竟嘛,小宏也是才学习,有很多不懂的地方滴。
--------------------------------------------------------------------------------------------------------------------------------
(一),memcache的简介
大家都知道,随着互联网的发展,网站项目已经不像以前一样简易轻便了,更多的是大负载,并且可以实现很多功能的项目。这时候,我们的服务器就显得“压力山大”喽。那么,我们身为程序猿,理所应当的就应该站出来为我们的服务器分担,所以现在就有了内存数据库这么个东东。顾名思义,内存数据库就是将数据放在内存中进行直接操作的数据库,它可以实现高性能、高速的内存读写速度。但是那,大家不要把它当成真正的数据库来使用,因为那,它大多起到的是辅助主数据库的作用,还有,它是把数据存在内存中的,很容易丢失,所以使用的时候一定要小心。
memcache那,就是内存数据库中的一种咯,它作为一个高性能的分布式内存对象缓存系统,通过在内存里维护一个统一的巨大的hash表,来存储各种格式的数据,由于使用key/value的形式,存储速度非常快,这也是它经常被使用的原因。另外,它可以通过缓存数据库查询结果,减少数据库访问次数,以提高动态web应用的速度,提高可扩展性。
还有还有,大家不要把memcache和memcached混为一谈哦,memcache是项目的名称,memcached是服务器端主程序的文件名,要记住。
(二),安装
1.服务器端的安装
小宏对memcache的理解大致就是这样,接下来呢,我们就说一下怎么安装memcache服务
memcache分为两个过程进行安装,一个是memcache服务器端的安装,另一个就是memcache客户端的安装。
所谓服务器端的安装就是在服务器(一般都是linux系统)上安装memcache实现数据的存储
所谓客户端的安装就是指php(或者其他程序,memcache还有其他不错的api接口提供)去使用服务器端的memcache提供的函数,需要php添加扩展,这个嘛,小宏只是了解,就不跟大家细说了。小宏就说说服务器端的安装吧。
其实,安装是很简单的,就是一行指令 yum install memcached
2,客户端的安装
为了避免广大群众直接安装时会出现莫名其妙的错误而导致寝食难安的问题,小宏建议,在安装前,我们先安装以下扩展
yum install gcc-c++ yum install zlib-devel yum install php70w-devel
这些是在小宏直接安装的时候缺少的依赖,小宏做了总结。想必大部分小白应该都是这个问题
A,安装libmemcached
bmemcached 是一个 memcached 的库,客户端库。具体的介绍嘛,大家可以问百度爸爸喽。
这里先说明哈,毕竟嘛,人家memcache是一个类似软件的东西,对人家重视一点,给人家一个单独的目录,显得人家重要是不是。小宏自己就定义在了 /home/soft/下面咯,大家也可以自行定义(别忘了mkdir指令哦,他可以新建文件夹)
*1,首先下载源码 wget https://launchpad.net/libmemcached/1.0/1.0.18/+download/libmemcached-1.0.18.tar.gz
*2,解压 tar -zxvf libmemcached
*3,进入libmemcached,依次执行下面的指令:
./configure --prefix=/usr/lib/libmemcache
make &&make install
¥¥注意注意,这个地方如果这么写到后面很有可能会出现phpinfo()不显示memcached的情况,(小宏当时在这里就卡了好久好久),所以那,小宏给大家提供一个解决方案。当然不是唯一的哈,大家有什么更好的方法希望能在评论区告诉小宏。
将上面的第一条指令修改为
CFLAGS="-O3 -fPIC" ./configure --prefix=/usr/lib/libmemcache
另外,我们需要在执行此条语句之前先 make clean 一下
然后接下来就正常执行步骤就好了。
*4,为我们的php安装memcached扩展(在soft下)
wget https://github.com/php-memcached-dev/php-memcached/archive/php7.zip
*5,解压 unzip
*6,进入memcache文件夹中,执行phpize指令,可以看到生成了configure等文件
*7,在当前文件夹下,执行下面的指令
./configure --with-php-config=/usr/bin/php-config --with-libmemcached-dir=/usr/lib/libmemcache
不出错最好,但是很有可能出错哦,所以,要是出错了,就换成下面的指令
./configure --with-php-config=/usr/bin/php-config --with-libmemcached-dir=/usr/lib/libmemcache --disable-memcached-sasl
*8,
make &&make install
*9,安装之后会给我们一个扩展目录 Installing shared extensions: /usr/lib64/php/modules/
*10,修改php.ini文件,vim /etc/php.ini,添加如下指令
extension=/usr/lib64/php/modules/memcached.so
*11,重新启动nginx和php-fpm
systemctl restart nginx.service
systemctl restart php-fpm.service
*12,打开带有phpinfo()命令的测试文件,如果出现类似下面的情况,那么恭喜你,你已经成功啦!!
(三),启动及其他(服务器端)
下面那,我们就该使用memcache了,
启动指令 /usr/bin/memcached -d -l 127.0.0.1 -p 11211 -m200 -u root
不过呢,小宏不推荐大家使用上面的指令,因为其中涉及到了端口的问题,所以那,还是用下面的吧
systemctl start memcached.service
当然,可以通过ps -ef |grep memcached查看进程
(四),具体操作
额,这里那,小宏不是很熟练,所以给大家推荐一位大神的文章,希望可以供大家借鉴。
--------------------------------------------------------------------------------------------------------------------------------
好啦,关于memcache那,小宏就说这么多,其实还有好多好多的知识点,也并不是说memcache只适合php语言,它是什么语言都适用的哈,更多的有关memcache的知识,大家还是需要自己多多查阅滴。额,今天就到这吧,小宏好饿,要去吃饭了,嘻嘻。下一章见!!!