来一发apache+php+memcached+mysql会见减速计划
欢迎大家来到仓酷云论坛!Memcache复杂先容:Memcached是一个自在和开放源码、高功能、散布的内存工具缓存体系。可用于减速静态web使用步伐,加重数据库的负载。经由过程在内存里保护一个一致的伟大的hash表,可以来存储各类格局的数据,包含图象、视频、文件和数据库查询的了局等。
这里的memcache要跟php中的memcache区分开来,php中的memcache是php的撑持扩大,而memcached是办事端主步伐文件,办事端装置步伐,假如要利用memcache来缓存体系,memcache和memcached都要装置。Memcache是一种内存缓存,把常常存取的数据大概工具,缓存在内存中,内存中缓存的这些数据是经由过程API的体例被存取的,数据就像是一个年夜的hash表,经由过程缓存经常使用的数据大概工具,以此来加重数据库的压力,进步网站的呼应速率。普通的讲,客户端收回哀求抵达memcache,假如哀求的数据存在memcache中,那末就间接将哀求的数据前往,不再对数据举行任何操纵。假如哀求的数据不存在memcache中,那就往查询数据库,把从数据库中猎取的数据前往给客户端,同时把数据缓存一份到memcache中。每次更新数据库的同时,更新memcache中的数据,包管memcache中的数据与数据库中的数据分歧。
memcache的复杂道理表示图
-------------------------------------------------------------------------
装置设置
复杂的先容完了道理,入手下手装置设置,基本是lamp,这里就不先容了
memcache、memcached
#wgethttp://memcached.谷歌code.com/files/memcached-1.4.13.tar.gz
#wgethttp://pecl.php.net/get/memcache-2.2.6.tgz
#lsmemcache*-l
-rw-r--r--1rootroot35957Oct42010memcache-2.2.6.tgz------------------memcache的php扩大
-rw-r--r--1rootroot320751Feb32012memcached-1.4.13.tar.gz----------------------memcache办事端软件
装置memcached
装置该软件时必要libevent的撑持,为了避免软件版本太低,以是不倡议yum装置
装置libevent
#wgethttp://cloud.github.com/downloads/libevent/libevent/libevent-2.0.21-stable.tar.gz
#tarxflibevent-2.0.21-stable.tar.gz-C/usr/src/
#cd/usr/src/libevent-2.0.21-stable/
#./configure&&make&&makeinstall
装置memcached
#tarxfmemcached-1.4.13.tar.gz-C/usr/src/
#cd/usr/src/memcached-1.4.13/
#./configure--with-libevent=/usr/local&&make&&makeinstall
#memcached-m32m-p11211-d-uroot-P/var/run/memcached.pid-c256----------启动memcached历程
-p利用的tcp端口,默许为11211;-m最年夜内存块,默许为64M;-d作为保卫历程在背景运转;-c最年夜运转的并发数,默许为1024;-P设置保留memcached的pid文件;
-u暗示运转memcached的用户,默许不克不及由root启动,以是以后用户为root时,必需要指定;-l是监听办事器的地点,假如有多个地点的话。
#ps-e|grepmem
16499?00:00:00memcached
#netstat-tunlp|grepmem
tcp000.0.0.0:112110.0.0.0:*LISTEN16499/memcached
udp000.0.0.0:112110.0.0.0:*16499/memcached
#
封闭memcached
#cat/var/run/memcached.pid
16532
#kill-916532
装置php的memcache扩大
#tarxfmemcache-2.2.6.tgz-C/usr/src/
#cd/usr/src/memcache-2.2.6/
#ls
CREDITSmemcache.php
READMEmemcache_consistent_hash.c
config.m4memcache_queue.c
config.w32memcache_queue.h
config9.m4memcache_session.c
example.phpmemcache_standard_hash.c
memcache.cphp_memcache.h
memcache.dsp
#phpize
Configuringfor:
PHPApiVersion:20090626
ZendModuleApiNo:20090626
ZendExtensionApiNo:220090626
#ls
CREDITSconfig.submemcache.php
Makefile.globalconfig.w32memcache_consistent_hash.c
READMEconfig9.m4memcache_queue.c
acinclude.m4configurememcache_queue.h
aclocal.m4configure.inmemcache_session.c
autom4te.cacheexample.phpmemcache_standard_hash.c
buildinstall-shmissing
config.guessltmain.shmkinstalldirs
config.h.inmemcache.cphp_memcache.h
config.m4memcache.dsprun-tests.php
#
#./configure--enable-memcache--with-php-config=/usr/local/bin/php-config
#make
#makeinstall
Installingsharedextensions:/usr/local/lib/php/extensions/no-debug-zts-20090626/
#cdmodules/
#ls
memcache.so
#pwd
/usr/src/memcache-2.2.6/modules
接上去修正php设置文件php.ini
#viphp.ini
extension="/usr/local/lib/php/extensions/no-debug-zts-20090626/"
extension=memcache.so---------------在文件中加上这两行
测试memcache的php扩大是不是装置乐成
#memcached-m32m-p11211-uroot-P/var/run/memcached.pid-c256-d
#/etc/init.d/apachestart
#cd/www/--------------------/www是我的apache的DocumentRoot
#vimem_test.php
<?php
$mem=newMemcache;
$mem->connect("127.0.0.1",11211);
$mem->set(hello,world,0,60);
$val=$mem->get(hello);
echo$val;
?>
#elinks--dump127.0.0.1/mem_test.php
world
假如能够看到world,那你的memcachephp扩大就乐成了
-------------------------------------------------------------------------
memcache与php的共同利用
php与memcache分离测试代码
#viphp-mem.php
<?php
//connect
$mem=newMemcache;--------初始化一个memcache工具
$mem->connect(localhost,11211);---------------毗连到memcache办事器,IP及端口
//savedata
$mem->set(key1,thisisfirstvalue,0,60);-------key数据的key,用来定位一个数据;第二个参数是必要保留的数据内容;第三个参数是标志,通常是0,第四个参数是混村的无效工夫,超时就会被扫除。
$val=$mem->get(key1);-------------get就是要猎取数据,猎取key1数据
echo"Getkey1value:".$val."<br/>";
//replacedata
$mem->replace(key1,thisisreplacevalue,0,60);
$val=$mem->get(key1);
echo"Getkey1value:".$val."<br/>";
//savedatagroup
$arr=array(aa,bb,cc);
$val=$mem->get(key1);
echo"Getkey1value:".$val."<br/>";
//replacedata
$mem->replace(key1,thisisreplacevalue,0,60);-------------交换key1
$val=$mem->get(key1);-------------保留key1
echo"Getkey1value:".$val."<br/>";
//savedatagroup
$arr=array(aa,bb,cc);
$mem->set(key2,$arr,0,60);
$val2=$mem->get(key2);
echo"Getkey2value:";
print_r($val2);
echo"<br/>";
//deletedata
$mem->delete(key1);-----------删除key1
$val=$mem->get(key1);--------------保留key1
echo"getkey1value:".$val."<br/>";
//closeconnetions
$mem->close();--------封闭
?>
"php-mem.php"36L,678Cwritten
#elinks--dump127.0.0.1/php-mem.php
Getkey1value:thisisfirstvalue
Getkey1value:thisisreplacevalue
Getkey2value:Array(=>aa=>bb=>cc)
getkey1value:
如今就乐成了。
如果您觉得本篇CentOSLinux教程讲得好,请记得点击右边漂浮的分享程序,把好文章分享给你的好朋友们!
来一发apache+php+memcached+mysql会见减速计划
我是学习嵌入式方向的,这学期就选修了这门专业任选课。 现在的linux操作系统如redhat,难点,红旗等,都是用这么一个内核,加上其它的用程序(包括X)构成的。 了解Linux的网络安全,系统的安全,用户的安全等。安全对于每位用户,管理员来说是非常重要的。 以前觉得Linux就跟dos一样,全是用命令窗口,相对于窗口界面来说多麻烦呀。 熟悉系统的基本操作,Linux的图形界面直观,操作简便,多加上机练习就可熟悉操作,在Linux下学习办公软件等常用软件。 得到到草率的回答或者根本得不到任何Linux答案。越表现出在寻求帮助前为解决问题付出的努力,你越能得到实质性的帮助。 得到到草率的回答或者根本得不到任何Linux答案。越表现出在寻求帮助前为解决问题付出的努力,你越能得到实质性的帮助。 清楚了解网络的基础知识,特别是在Linux下应用知识,如接入internet等等。
页:
[1]