redis环境下mysql是如何实现lnmp架构缓存的
发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,本文主要给大家介绍redis环境下mysql是如何实现lnmp架构缓存的,文章内容都是笔者用心摘选和编辑的,具有一定的针对性,对大家的参考意义还是比较大的,下面跟笔者一起了解下redis环境下mysq
千家信息网最后更新 2026年10月31日redis环境下mysql是如何实现lnmp架构缓存的
本文主要给大家介绍redis环境下mysql是如何实现lnmp架构缓存的,文章内容都是笔者用心摘选和编辑的,具有一定的针对性,对大家的参考意义还是比较大的,下面跟笔者一起了解下redis环境下mysql是如何实现lnmp架构缓存的吧。
配置环境:centos 7.2
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安装
?
| 123456789101112131415 | [root@server2 php-fpm.d]# rpm -ivh nginx-1.8.0-1.el6.ngx.x86_64.rpmwarning: nginx-1.8.0-1.el6.ngx.x86_64.rpm: header v4 rsa/sha1 signature, key id 7bd9bf62: nokeypreparing... ########################################### [100%] 1:nginx ########################################### [100%]---------------------------------------------------------------------- thanks for using nginx! please find the official documentation for nginx here:* https://nginx.org/en/docs/commercial subscriptions for nginx are available on:* https://nginx.com/products/ ----------------------------------------------------------------------[root@server2 php-fpm.d]# id nginxuid=498(nginx) gid=499(nginx) groups=499(nginx) |
3、nginx和php配置
1、php配置
?
| 12345678910111213 | [root@server2 php-fpm.d]# cd /etc/php-fpm.d/[root@server2 php-fpm.d]# id nginxuid=498(nginx) gid=499(nginx) groups=499(nginx)[root@server2 php-fpm.d]# vim www.conf 39 user = nginx 41 group = nginx [root@server2 php-fpm.d]# vim /etc/php.ini 946 date.timezone = asia/shanghai[root@server2 php-fpm.d]# /etc/init.d/php-fpm startstarting php-fpm: [ ok ][root@server2 php-fpm.d]# netstat -antlp | grep phptcp 0 0 127.0.0.1:9000 0.0.0.0:* listen 1125/php-fpm [root@server2 php-fpm.d]# vim /etc/php.ini |
2、nginx配置
?
| 123456789101112131415161718 | [root@server2 ~]# cd /etc/nginx/conf.d/[root@server2 conf.d]# lsdefault.conf example_ssl.conf[root@server2 conf.d]# vim default.conf 10 index index.php index.html index.htm; 30 location ~ \.php$ { 31 root html; 32 fastcgi_pass 127.0.0.1:9000; 33 fastcgi_index index.php; 34 fastcgi_param script_filename /usr/share/nginx/html$fastcgi_script _name; 35 include fastcgi_params; 36 }[root@server2 conf.d]# nginx -tnginx: the configuration file /etc/nginx/nginx.conf syntax is oknginx: configuration file /etc/nginx/nginx.conf test is successful[root@server2 conf.d]# nginx[root@server2 conf.d]# netstat -anplt |grep nginxtcp 0 0 0.0.0.0:80 0.0.0.0:* listen 1141/nginx |
php测试:
?
| 123456789 | [root@server2 conf.d]# cd /usr/share/nginx/html/[root@server2 html]# vim index.php[root@server2 html]# cat index.php[root@server2 html]# /etc/init.d/php-fpm reloadreloading php-fpm: [14-jul-2018 01:09:13] notice: configuration file /etc/php-fpm.conf test is successful [ ok ] |
物理机访问:
4、php配置redis+mysql
?
| 1234567891011121314151617181920212223242526272829303132333435363738394041 | [root@server2 ~]# cd /usr/share/nginx/html/[root@server2 html]# vim test.php connect('172.25.254.1',6379) or die ("could net connect redi s server"); # $query = "select * from test limit 9"; $query = "select * from test"; for ($key = 1; $key < 10; $key++) { if (!$redis->get($key)) { $connect = mysql_connect('172.25.254.3','redis','wes tos'); mysql_select_db(test); $result = mysql_query($query); //如果没有找到$key,就将该查询sql的结果缓存到redis while ($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 "number is $key"; echo ""; echo "name is $data[$key]" ; echo ""; }> |
5、添加php支持的redis模块
?
| 1234567891011121314151617181920212223242526272829303132 | [root@server2 ~]# unzip phpredis-master.zip[root@server2 ~]# cd phpredis-master[root@server2 phpredis-master]# phpizeconfiguring for:php api version: 20090626zend module api no: 20090626zend extension api no: 220090626[root@server2 phpredis-master]# lsacinclude.m4 config.sub library.c readme.markdownaclocal.m4 configure library.h redis.cautom4te.cache configure.in ltmain.sh redis_session.cbuild credits makefile.global redis_session.hcommon.h debian missing run-tests.phpconfig.guess debian.control mkdeb-apache2.sh serialize.listconfig.h.in igbinary mkinstalldirs testsconfig.m4 install-sh php_redis.h[root@server2 phpredis-master]# ./configure[root@server2 phpredis-master]# make && make install[root@server2 ~]# cd /etc/php.d/[root@server2 php.d]# lscurl.ini json.ini mysql.ini pdo_sqlite.ini zip.inifileinfo.ini mbstring.ini pdo.ini phar.inigd.ini mysqli.ini pdo_mysql.ini sqlite3.ini[root@server2 php.d]# cp mysql.ini redis.ini[root@server2 php.d]# vim redis.ini 2 extension=redis.so [root@server2 php.d]# /etc/init.d/php-fpm reloadreloading php-fpm: [14-jul-2018 01:21:56] notice: configuration file /etc/php-fpm.conf test is successful [ ok ][root@server2 php.d]# php -m |grep redisredisserver3:mysql配置 |
1、安装mysql-server
?
| 1234567891011121314 | [root@server3 ~]# rpm -qa | grep mysqlmysql-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|grep mysql` --nodeps ##不考虑依赖性删除mysqlwarning: /etc/my.cnf saved as /etc/my.cnf.rpmsave[root@server3 ~]# rpm -qa | grep mysql[root@server3 ~]# cd /var/lib/mysql/[root@server3 mysql]# rm -fr *[root@server3 mysql]# ls[root@server3 mysql]# yum install -y mysql-server ##安装 |
2、开启mysql,并导入测试数据库
?
| 123456789101112 | [root@server3 ~]# /etc/init.d/mysqld start[root@server3 ~]# mysql < test.sql[root@server3 ~]# mysql < test.sql[root@server3 ~]# cat test.sqluse test;create table `test` (`id` int(7) not null auto_increment, `name` char(8) default null, primary key (`id`)) engine=innodb default charset=utf8;insert into `test` values (1,'test1'),(2,'test2'),(3,'test3'),(4,'test4'),(5,'test5'),(6,'test6'),(7,'test7'),(8,'test8'),(9,'test9');#delimiter $$#create trigger datatoredis after update on test for each row begin# set @recv=gman_do_background('synctoredis', json_object(new.id as `id`, new.name as `name`));# end$$#delimiter ; |
3、数据库授权
?
| 123456789101112131415161718 | [root@server3 ~]# mysqlmysql> grant all on test.* to redis@'%' identified by 'westos';query ok, 0 rows affected (0.00 sec)mysql> select * from test.test;+----+-------+| id | name |+----+-------+| 1 | test1 || 2 | test2 || 3 | test3 || 4 | test4 || 5 | test5 || 6 | test6 || 7 | test7 || 8 | test8 || 9 | test9 |+----+-------+9 rows in set (0.00 sec) |
测试:访问172.25.254.2/test.php
1、php默认从redis 索取数据,第一次redis无缓存,则php从mysql'索取数据
第一次无缓存
第二次索取数据后:
redis节点也可查看
?
| 123 | [root@server1 redis-4.0.1]# redis-cli127.0.0.1:6379> get 2"test2" |
2、将数据库server3节点内容更新并删除节点,则php从数据库索取数据节点更新内容
?
| 123456789101112131415161718 | mysql> update test.test set name='westos' where id=1;query ok, 1 row affected (0.05 sec)rows matched: 1 changed: 1 warnings: 0mysql> select * from test.test;+----+--------+| id | name |+----+--------+| 1 | westos || 2 | test2 || 3 | test3 || 4 | test4 || 5 | test5 || 6 | test6 || 7 | test7 || 8 | test8 || 9 | test9 |+----+--------+9 rows in set (0.00 sec) |
redis的master主机删除节点内容
?
| 1234567 | [root@server1 redis-4.0.1]# redis-cli127.0.0.1:6379> get 2"test2"127.0.0.1:6379> del 1(integer) 1127.0.0.1:6379> get 1(nil) |
刷新页面,再次访问
看完以上关于redis环境下mysql是如何实现lnmp架构缓存的,很多读者朋友肯定多少有一定的了解,如需获取更多的行业知识信息 ,可以持续关注我们的行业资讯栏目的。
数据
配置
缓存
节点
环境
内容
数据库
架构
测试
模块
笔者
第一次
行业
更新
主机
依赖性
信息
再次
意义
文章
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
互联网黑科技
互联网金融监管科技数据
科技互联网项目
互联网科技有限公司经营范围
互联网科技有限公司图片
合肥互联网科技公司
互联网与新科技
互联网科技类展会
西藏七维空间互联网科技有限公司
互联网金融科技公司干啥的
南山科技园互联网公司有哪些
彤创互联网科技有限公司
智腾互联网科技有限公司
乌鲁木齐新华智原互联网科技学校
中科明德北京互联网科技
高科技互联网套路
福仕德教育科技互联网
广州三三互联网科技有限公司
众联互联网络科技
平安好医生打造互联网科技医疗
时间互联网络科技
互联网高科技企业
富国互联网科技创新基金
科技与互联网的利与弊
宜昌元轩互联网科技有限公司
未来五年的互联网科技
国大互联网教育科技有限公司薪资
互联网科技股为什么大涨
互联网科技接地气
版纳互联网科技选哪家