redis环境下mysql是如何实现lnmp架构缓存的
发表于:2025-01-20 作者:千家信息网编辑
千家信息网最后更新 2025年01月20日,本文主要给大家介绍redis环境下mysql是如何实现lnmp架构缓存的,文章内容都是笔者用心摘选和编辑的,具有一定的针对性,对大家的参考意义还是比较大的,下面跟笔者一起了解下redis环境下mysq
千家信息网最后更新 2025年01月20日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安全错误
数据库的锁怎样保障安全
网络安全维护了什么
十一旅游团软件开发
网络安全与执法是公安技术类
机架式服务器噪音
新中大数据库 附加
穿越火线进不了战队服务器
网络安全培训班工资
戴尔云服务器
线上软件开发多少钱
ibm服务器7945
网络安全知识教育图片
以下关系数据库的基本数据操作中
我的世界综合服务器手游
外汇模拟交易软件开发
odps平台是什么数据库
数据库主机查看
深圳餐饮连锁数据库
天元网络安全手抄报
用云服务器搭建主机
文档数据库制作
江苏现代软件开发进货价
单片机用哪个开发软件开发
国内量化软件开发会违法么
幻塔星岛服务器怎么没了
网络安全 校园贷款图片
湖北软件开发解决方案维护
家具城进销存管理系统数据库
网页上传服务器图片无法载入
u盘装服务器系统教程
网络安全教育周记