今天要处理一堆数据,第一次从数据库取出来最少的几千,最多的几十万,不可能每次去数据库取。第一次取出成功后,因为本地windows 没有memcached环境,只好先临时保存到一个文件中,用 array_slice 分段读取数据执行。可这每次读取文件也麻烦啊。几十万的数组保存出来小的也是几十KB 大的好几M。SO,那就在虚拟机环境里弄个memcached吧。全部的环境安装我喜欢编译安装 不喜欢yum apt-get 等方式安装。注本环境是已经装好了PHP的,我装的是PHP5.6 其实弄完了,早知道应该去装redis的,至少能够处理我几十万数组的交集差集。memcached并无那么灵活。php
yum -y install gcc yum -y install gcc-c++
而后下载安装 libevent c++
官网:http://libevent.org/git
wget https://github.com/libevent/libevent/releases/download/release-2.0.22-stable/libevent-x.x.xx-stable.tar.gz tar -zxvf libevent-x.0.xx-stable.tar.gz cd libevent-x.x.xx-stable ./configure --prefix=/usr/local/libevent/ make && make install
官网网址: http://memcached.org/downloadsgithub
官网安装说的很明白了 官方安装代码web
wget http://memcached.org/latest tar -zxvf memcached-1.x.x.tar.gz cd memcached-1.x.x ./configure && make && make test && sudo make install
可是为了方便管理 我仍是喜欢安装在我指定的地方的。redis
我喜欢把下载下的文件放在 /var/local/download/目录下 下载到什么地方,大家喜欢本身定。数据库
wget http://memcached.org/latest tar -zxvf memcached-1.x.x.tar.gz cd memcached-1.x.x ./configure --prefix=/webService/memcached --with-libevent=/usr/local/libevent make -j2 make install
到此咱们暂时安装完了memcached.vim
安装 LIBMEMCACHEDwindows
下载地址:https://launchpad.net/libmemcached/+download数组
wget https://launchpad.net/libmemcached/1.0/1.0.18/+download/libmemcached-1.0.18.tar.gz tar -zxvf libmemcached-1.0.18.tar.gz cd libmemcached-1.0.18 ./configure --prefix=/usr/local/libmemcached --with-memcached=/webService/memcached/ make -j2 make install
libmemcached 必须安装若是不安装就会出现下面这个状况
下载地址:http://pecl.php.net/package/memcached
http://pecl.php.net/get/memcached-2.2.0.tgz tar -zxvf memcached-2.2.0.tgz cd memcached-2.2.0 phpize ./configure --enable-memcached --with-php-config=/webService/php5.6/bin/php-config --with-libmemcached-dir=/usr/local/libmemcached --disable-memcached-sasl make -j2 make install
安装完成后你将获得一个目录提示
[root@localhost memcached-2.2.0]# make install Installing shared extensions: /webService/php5.6/lib/php/extensions/no-debug-zts-20131226/
而后进入这个目录你装发现多了 memcached.so
cd /webService/php5.6/lib/php/extensions/no-debug-zts-20131226/ ls memcached.so opcache.so scws.so sphinx.so swoole.so
而后编辑php.ini
vim /webService/php5.6/etc/php.ini #个人php ini 是我指定到这个目录的,你能够根据你的地址来编辑 打印phpinfo()你就能找到你的配置文件地址的 [memcached] extension=memcached.so #加入上面两行
最终结果
重启服务
service httpd restart
重启完后打印phpinfo 你将看到 memcached 已经安装好了。或者
php -m | grep memcached #你将看到 memcached
/webService/memcached/bin/memcached -d -u www -p 11211 -P /tmp/memcached.pid
若是你机器上没有安装telnet的话查看监控不太方便的
yum install telnet-server yum install telnet #两条命令下去全Y 而后编辑vi /etc/xinetd.d/telnet 文件 vim /etc/xinetd.d/telnt #找到disable 查看它是不是no 若是是no 的话要把它改成yes
启动 telnet
service xinetd start
测试链接
telnet 127.0.0.1 11211 #再次输入stats stats STAT pid 32365 #这个就是启动的进程啦
或者这样也能够查看进程
ps -aux | grep memcached
kill -9 进程ID
若是Memcache和Web服务器不是同一台服务器,那么或许还须要配置iptables 登陆Memcache服务器,并取得root权限
vim /etc/sysconfig/iptables -A RH-Firewall-1-INPUT -p tcp -s Web服务器1的IP地址 –dport 11211 -j ACCEPT -A RH-Firewall-1-INPUT -p tcp -s Web服务器2的IP地址 –dport 11211 -j ACCEPT
关于PHP memcached用法 自行参考:http://php.net/manual/zh/book.memcached.php
memcached 手册: http://www.yiibai.com/memcached/