这篇文章主要为大家展示了“redis服务器环境下mysql如何实现lnmp架构缓存”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“redis服务器环境下mysql如何实现lnmp架构缓存”这篇文章吧。

配置环境:redhat6.5

server1:redis(172.25.254.1)

server2:php(172.25.254.2)

server3:mysql(172.25.254.3)

配置步骤:

server2:

1、server2安装php的redis相应模块

2、nginx安装

[root@server2php-fpm.d]#rpm-ivhnginx-1.8.0-1.el6.ngx.x86_64.rpmwarning:nginx-1.8.0-1.el6.ngx.x86_64.rpm:HeaderV4RSA/SHA1Signature,keyID7bd9bf62:NOKEYPreparing...###########################################[100%]1:nginx###########################################[100%]----------------------------------------------------------------------Thanksforusingnginx!Pleasefindtheofficialdocumentationfornginxhere:*https://nginx.org/en/docs/Commercialsubscriptionsfornginxareavailableon:*https://nginx.com/products/----------------------------------------------------------------------[root@server2php-fpm.d]#idnginxuid=498(nginx)gid=499(nginx)groups=499(nginx)

3、nginx和php配置

1、php配置

[root@server2php-fpm.d]#cd/etc/php-fpm.d/[root@server2php-fpm.d]#idnginxuid=498(nginx)gid=499(nginx)groups=499(nginx)[root@server2php-fpm.d]#vimwww.conf39user=nginx41group=nginx[root@server2php-fpm.d]#vim/etc/php.ini946date.timezone=Asia/Shanghai[root@server2php-fpm.d]#/etc/init.d/php-fpmstartStartingphp-fpm:[OK][root@server2php-fpm.d]#netstat-antlp|grepphptcp00127.0.0.1:90000.0.0.0:*LISTEN1125/php-fpm[root@server2php-fpm.d]#vim/etc/php.ini

2、nginx配置

[root@server2~]#cd/etc/nginx/conf.d/[root@server2conf.d]#lsdefault.confexample_ssl.conf[root@server2conf.d]#vimdefault.conf10indexindex.phpindex.htmlindex.htm;30location~\.php${31roothtml;32fastcgi_pass127.0.0.1:9000;33fastcgi_indexindex.php;34fastcgi_paramSCRIPT_FILENAME/usr/share/nginx/html$fastcgi_script_name;35includefastcgi_params;36}[root@server2conf.d]#nginx-tnginx:theconfigurationfile/etc/nginx/nginx.confsyntaxisoknginx:configurationfile/etc/nginx/nginx.conftestissuccessful[root@server2conf.d]#nginx[root@server2conf.d]#netstat-anplt|grepnginxtcp000.0.0.0:800.0.0.0:*LISTEN1141/nginx

php测试:

[root@server2conf.d]#cd/usr/share/nginx/html/[root@server2html]#vimindex.php[root@server2html]#catindex.php<!--phpphpinfo()-->[root@server2html]#/etc/init.d/php-fpmreloadReloadingphp-fpm:[14-Jul-201801:09:13]NOTICE:configurationfile/etc/php-fpm.conftestissuccessful[OK]

物理机访问:

4、php配置redis+mysql

[root@server2~]#cd/usr/share/nginx/html/[root@server2html]#vimtest.php<!--php$redis=newRedis();$redis--->connect('172.25.254.1',6379)ordie("couldnetconnectredisserver");#$query="select*fromtestlimit9";$query="select*fromtest";for($key=1;$key<10;$key++){if(!$redis->get($key)){$connect=mysql_connect('172.25.254.3','redis','westos');mysql_select_db(test);$result=mysql_query($query);//如果没有找到$key,就将该查询sql的结果缓存到rediswhile($row=mysql_fetch_assoc($result)){$redis->set($row['id'],$row['name']);}$myserver='mysql';break;}else{$myserver="redis";$data[$key]=$redis->get($key);}}echo$myserver;echo"";for($key=1;$key<10;$key++){echo"numberis$key";echo"";echo"nameis$data[$key]";echo"";}>

5、添加php支持的redis模块

[root@server2~]#unzipphpredis-master.zip[root@server2~]#cdphpredis-master[root@server2phpredis-master]#phpizeConfiguringfor:PHPApiVersion:20090626ZendModuleApiNo:20090626ZendExtensionApiNo:220090626[root@server2phpredis-master]#lsacinclude.m4config.sublibrary.cREADME.markdownaclocal.m4configurelibrary.hredis.cautom4te.cacheconfigure.inltmain.shredis_session.cbuildCREDITSMakefile.globalredis_session.hcommon.hdebianmissingrun-tests.phpconfig.guessdebian.controlmkdeb-apache2.shserialize.listconfig.h.inigbinarymkinstalldirstestsconfig.m4install-shphp_redis.h[root@server2phpredis-master]#./configure[root@server2phpredis-master]#make&&makeinstall[root@server2~]#cd/etc/php.d/[root@server2php.d]#lscurl.inijson.inimysql.inipdo_sqlite.inizip.inifileinfo.inimbstring.inipdo.iniphar.inigd.inimysqli.inipdo_mysql.inisqlite3.ini[root@server2php.d]#cpmysql.iniredis.ini[root@server2php.d]#vimredis.ini2extension=redis.so[root@server2php.d]#/etc/init.d/php-fpmreloadReloadingphp-fpm:[14-Jul-201801:21:56]NOTICE:configurationfile/etc/php-fpm.conftestissuccessful[OK][root@server2php.d]#php-m|grepredisredisserver3:mysql配置

1、安装mysql-server

[root@server3~]#rpm-qa|grepmysqlmysql-community-common-5.7.17-1.el6.x86_64mysql-community-client-5.7.17-1.el6.x86_64mysql-community-libs-compat-5.7.17-1.el6.x86_64mha4mysql-node-0.56-0.el6.noarchmysql-community-libs-5.7.17-1.el6.x86_64mysql-community-server-5.7.17-1.el6.x86_64[root@server3~]#rpm-e`rpm-qa|grepmysql`--nodeps##不考虑依赖性删除mysqlwarning:/etc/my.cnfsavedas/etc/my.cnf.rpmsave[root@server3~]#rpm-qa|grepmysql[root@server3~]#cd/var/lib/mysql/[root@server3mysql]#rm-fr*[root@server3mysql]#ls[root@server3mysql]#yuminstall-ymysql-server##安装

2、开启mysql,并导入测试数据库

[root@server3~]#/etc/init.d/mysqldstart[root@server3~]#mysql<test.sql[root@server3~]#mysql<test.sql[root@server3~]#cattest.sqlusetest;CREATETABLE`test`(`id`int(7)NOTNULLAUTO_INCREMENT,`name`char(8)DEFAULTNULL,PRIMARYKEY(`id`))ENGINE=InnoDBDEFAULTCHARSET=utf8;INSERTINTO`test`VALUES(1,'test1'),(2,'test2'),(3,'test3'),(4,'test4'),(5,'test5'),(6,'test6'),(7,'test7'),(8,'test8'),(9,'test9');#DELIMITER$$#CREATETRIGGERdatatoredisAFTERUPDATEONtestFOREACHROWBEGIN#SET@RECV=gman_do_background('syncToRedis',json_object(NEW.idas`id`,NEW.nameas`name`));#END$$#DELIMITER;

3、数据库授权

[root@server3~]#mysqlmysql>grantallontest.*toredis@'%'identifiedby'westos';QueryOK,0rowsaffected(0.00sec)mysql>select*fromtest.test;+----+-------+|id|name|+----+-------+|1|test1||2|test2||3|test3||4|test4||5|test5||6|test6||7|test7||8|test8||9|test9|+----+-------+9rowsinset(0.00sec)

测试:访问172.25.254.2/test.php

1、php默认从redis 索取数据,第一次redis无缓存,则php从mysql'索取数据

第一次无缓存

第二次索取数据后:

redis节点也可查看

[root@server1redis-4.0.1]#redis-cli127.0.0.1:6379>get2"test2"

2、将数据库server3节点内容更新并删除节点,则php从数据库索取数据节点更新内容

mysql>updatetest.testsetname='westos'whereid=1;QueryOK,1rowaffected(0.05sec)Rowsmatched:1Changed:1Warnings:0mysql>select*fromtest.test;+----+--------+|id|name|+----+--------+|1|westos||2|test2||3|test3||4|test4||5|test5||6|test6||7|test7||8|test8||9|test9|+----+--------+9rowsinset(0.00sec)

redis的master主机删除节点内容

[root@server1redis-4.0.1]#redis-cli127.0.0.1:6379>get2"test2"127.0.0.1:6379>del1(integer)1127.0.0.1:6379>get1(nil)

刷新页面,再次访问

以上是“redis服务器环境下mysql如何实现lnmp架构缓存”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注亿速云行业资讯频道!