redis环境下mysql是如何实现lnmp架构缓存的
发表于:2025-11-06 作者:千家信息网编辑
千家信息网最后更新 2025年11月06日,本文主要给大家介绍redis环境下mysql是如何实现lnmp架构缓存的,文章内容都是笔者用心摘选和编辑的,具有一定的针对性,对大家的参考意义还是比较大的,下面跟笔者一起了解下redis环境下mysq
千家信息网最后更新 2025年11月06日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安全错误
数据库的锁怎样保障安全
高中网络技术应用复习提纲
税控服务器管理系统电子汇总
饥荒服务器名称改变
原神先行服的服务器
云南软件开发公司现状
如何运行sql数据库脚本
服务器机柜属于什么类目
2016网络安全大会视频
网络技术学习文案手写
sql数据库怎么备份表
远程许可证管理服务器怎么设置
四川云游科技互联网有限公司
软件开发对电脑配置要求
深信服网络安全认证多少钱
安迅思供需数据库
为什么2k22连不上服务器
给戴尔服务器联网
数据库bdas
多拨被服务器拒绝
零基础学习软件开发从哪开始
数据库中的实验
北京it软件开发给您好的建议
三类本科软件开发
网络安全ppt模版
员工与客户数据库设计
辽宁oa管控软件开发平台
网络安全课题如何写
天下三69服务器
金山区上门软件开发制造价格
水晶报表数据库表链接