仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 645|回复: 8
打印 上一主题 下一主题

[CentOS(社区)] 来一发apache+php+memcached+mysql会见减速计划

[复制链接]
若天明 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-14 20:43:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
欢迎大家来到仓酷云论坛!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
[root@localhostsofts]#wgethttp://memcached.谷歌code.com/files/memcached-1.4.13.tar.gz

[root@localhostsofts]#wgethttp://pecl.php.net/get/memcache-2.2.6.tgz

[root@localhostsofts]#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
[root@localhostsofts]#wgethttp://cloud.github.com/downloads/libevent/libevent/libevent-2.0.21-stable.tar.gz

[root@localhostsofts]#tarxflibevent-2.0.21-stable.tar.gz-C/usr/src/
[root@localhostsofts]#cd/usr/src/libevent-2.0.21-stable/

[root@localhostlibevent-2.0.21-stable]#./configure&&make&&makeinstall

装置memcached
[root@localhostsofts]#tarxfmemcached-1.4.13.tar.gz-C/usr/src/
[root@localhostsofts]#cd/usr/src/memcached-1.4.13/

[root@localhostmemcached-1.4.13]#./configure--with-libevent=/usr/local&&make&&makeinstall

[root@localhostrun]#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是监听办事器的地点,假如有多个地点的话。
[root@localhostmemcached-1.4.13]#ps-e|grepmem
16499?00:00:00memcached
[root@localhostmemcached-1.4.13]#netstat-tunlp|grepmem
tcp000.0.0.0:112110.0.0.0:*LISTEN16499/memcached
udp000.0.0.0:112110.0.0.0:*16499/memcached
[root@localhostmemcached-1.4.13]#

封闭memcached
[root@localhostrun]#cat/var/run/memcached.pid
16532
[root@localhostrun]#kill-916532

装置php的memcache扩大
[root@localhostsofts]#tarxfmemcache-2.2.6.tgz-C/usr/src/
[root@localhostsofts]#cd/usr/src/memcache-2.2.6/

[root@localhostmemcache-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
[root@localhostmemcache-2.2.6]#phpize
Configuringfor:
PHPApiVersion:20090626
ZendModuleApiNo:20090626
ZendExtensionApiNo:220090626

[root@localhostmemcache-2.2.6]#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
[root@localhostmemcache-2.2.6]#

[root@localhostmemcache-2.2.6]#./configure--enable-memcache--with-php-config=/usr/local/bin/php-config
[root@localhostmemcache-2.2.6]#make

[root@localhostmemcache-2.2.6]#makeinstall
Installingsharedextensions:/usr/local/lib/php/extensions/no-debug-zts-20090626/

[root@localhostmemcache-2.2.6]#cdmodules/
[root@localhostmodules]#ls
memcache.so
[root@localhostmodules]#pwd
/usr/src/memcache-2.2.6/modules

接上去修正php设置文件php.ini
[root@localhostlib]#viphp.ini

extension="/usr/local/lib/php/extensions/no-debug-zts-20090626/"

extension=memcache.so---------------在文件中加上这两行

测试memcache的php扩大是不是装置乐成
[root@localhostlib]#memcached-m32m-p11211-uroot-P/var/run/memcached.pid-c256-d
[root@localhostlib]#/etc/init.d/apachestart

[root@localhost~]#cd/www/--------------------/www是我的apache的DocumentRoot

[root@localhostwww]#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;
?>

[root@localhostwww]#elinks--dump127.0.0.1/mem_test.php
world

假如能够看到world,那你的memcachephp扩大就乐成了
-------------------------------------------------------------------------
memcache与php的共同利用
php与memcache分离测试代码
[root@localhostwww]#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"[New]36L,678Cwritten
[root@localhostwww]#elinks--dump127.0.0.1/php-mem.php
Getkey1value:thisisfirstvalue
Getkey1value:thisisreplacevalue
Getkey2value:Array([0]=>aa[1]=>bb[2]=>cc)
getkey1value:

如今就乐成了。


如果您觉得本篇CentOSLinux教程讲得好,请记得点击右边漂浮的分享程序,把好文章分享给你的好朋友们!
小魔女 该用户已被删除
沙发
发表于 2015-1-16 21:56:11 | 只看该作者

来一发apache+php+memcached+mysql会见减速计划

我是学习嵌入式方向的,这学期就选修了这门专业任选课。
柔情似水 该用户已被删除
板凳
发表于 2015-1-24 22:46:43 | 只看该作者
现在的linux操作系统如redhat,难点,红旗等,都是用这么一个内核,加上其它的用程序(包括X)构成的。
小女巫 该用户已被删除
地板
发表于 2015-2-2 17:23:59 | 只看该作者
了解Linux的网络安全,系统的安全,用户的安全等。安全对于每位用户,管理员来说是非常重要的。
不帅 该用户已被删除
5#
发表于 2015-2-8 05:21:06 | 只看该作者
以前觉得Linux就跟dos一样,全是用命令窗口,相对于窗口界面来说多麻烦呀。
愤怒的大鸟 该用户已被删除
6#
发表于 2015-2-24 23:30:31 | 只看该作者
熟悉系统的基本操作,Linux的图形界面直观,操作简便,多加上机练习就可熟悉操作,在Linux下学习办公软件等常用软件。
第二个灵魂 该用户已被删除
7#
发表于 2015-3-7 17:42:33 | 只看该作者
得到到草率的回答或者根本得不到任何Linux答案。越表现出在寻求帮助前为解决问题付出的努力,你越能得到实质性的帮助。
只想知道 该用户已被删除
8#
发表于 2015-3-15 16:14:43 | 只看该作者
得到到草率的回答或者根本得不到任何Linux答案。越表现出在寻求帮助前为解决问题付出的努力,你越能得到实质性的帮助。
乐观 该用户已被删除
9#
发表于 2015-3-22 03:29:57 | 只看该作者
清楚了解网络的基础知识,特别是在Linux下应用知识,如接入internet等等。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-23 21:55

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表