当前位置: 首页 > news >正文

redis实现lamp架构缓存

redis服务器环境下mysql实现lamp架构缓存

ip角色环境
192.168.242.49缓存服务器Redis2.2.7
192.168.242.50mysql服务器mysql
192.168.242.51web端php
  • ***默认已安装好redis,mysql

三台服务器时间同步(非常重要)

# 下载ntpdate
yum -y install ntp ntpdate
# 同步时钟
ntpdate cn.pool.ntp.org
# 将系统时钟的时间设置到硬件时钟
hwclock --systohc

redis配置(redis主机)

# 如果不添加密码认证,远程登录不上
vi /usr/local/redis-6.2.3/redis.conf# 修改允许其他主机远程登录,注释掉下面的语句
bind 127.0.0.1
# 修改取消保护模式
protected-mode no
# 将其中的daemonize no值修改为如下(可选)
daemonize yes # 此设置用于将redis以守护进程方式运行。# 重启redis
./src/redis-server redis.conf

添加mysql登录用户(mysql主机)

# 登录mysql
mysql -uroot -p'密码'
# 为redis创建一个远程登录用户
create user 'redis'@'%' identified with mysql_native_password by 'redis@123';
# 授予读权限
GRANT SELECT ON *.* TO 'redis'@'%';
# 使配置生效
flush privileges;

向mysql添加测试数据

# 创建mytest数据库
create database mytest;
# 创建dog表
use mytest;
create table dog( id int, name varchar(10) );
# 加入测试数据
insert into dog(id,name) values(1,"heibei"),(2,"zangao"),(3,"hashiqi"),(4,"jinmao"),(5,"tugou"),(6,"bomei"),(7,"labuladuo"),(8,"xigou"),(9,"tiangou");

安装php与扩展(web端主机)

安装php

yum install php php-fpm php-cli php-common php-gd php-mbstring php-mysql php-pdo php-devel php-xmlrpc php-xml php-bcmath php-dba php-enchant

安装php的redis扩展

# 安装源码编译支持库:
yum install gcc gcc-c++
# 下载扩展包
wget http://pecl.php.net/get/redis-2.2.7.tgz
tar -zxvf redis-2.2.7.tgz
cd redis-2.2.7/
# 检测php环境并生成configure
phpize
./configure
make
make install 

修改/etc/php.ini

vi /etc/php.ini
# 在末尾添加如下语句
extension=redis.so
# 重启http服务
systemctl restart httpd

编写http发布文件

 vi /var/www/html/index.php<?php
phpinfo();
?>

访问phpinfo页面:http://192.168.242.51/index.php

记得防火墙与selinux是否关闭

在这里插入图片描述

编写redis.php测试代码

 vi /var/www/html/redis.php<?php$redis = new Redis();$redis->connect('192.168.242.49',6379) or die ("could net connect redis server");//此处修改自己的redis服务器地址,确保已经启动# $query = "select * from test limit 9";//查询数据库语句$query = "select * from dog";for ($key = 1; $key < 10; $key++){if (!$redis->get($key)){// 数据库连接信息$connect = mysql_connect('192.168.242.50','redis','redis@123');// 数据库表名mysql_select_db('mytest');$result = mysql_query($query);//如果没有找到$key,就将该查询sql的结果缓存到redis$arr = [];while ($row = mysql_fetch_assoc($result)){// 与数据库属性名要对应$redis->setex($row['id'],10,$row['name']);$arr[] = $row;}$myserver = 'mysql';$data = $arr;break;}else{$myserver = "redis";$data[$key] = $redis->get($key);}}echo $myserver;echo "<br>";for ($key = 1; $key < 10; $key++){echo "number is <b><font color=#FF0000>$key</font></b>";echo "<br>";if ($myserver == "mysql") {$arr2 = array_map('end',$data);echo "name is <b><font color=#FF0000>$arr2[$key]</font></b>";echo "<br>";}else {echo "name is <b><font color=#FF0000>$data[$key]</font></b>";echo "<br>";}}

修改redis配置

vi /usr/local/redis-6.2.3/redis.conf# 将其中的daemonize no值修改为如下
daemonize yes
# 此设置用于将redis以守护进程方式运行。

访问网页:http://192.168.242.51/redis.php

成功应该是刷新页面后mysql与redis都有概率出现。

http://www.lryc.cn/news/526716.html

相关文章:

  • 正则表达式中常见的贪婪词
  • CF 339A.Helpful Maths(Java实现)
  • SQL 指南
  • DDD架构实战第七讲总结:分层模型和代码组织
  • Python “字典” 实战案例:5个项目开发实例
  • (一)QT的简介与环境配置WIN11
  • 在 Windows 系统上,将 Ubuntu 从 C 盘 迁移到 D 盘
  • vue2的$el.querySelector在vue3中怎么写
  • GPSd定时检测保活TCP GPS源
  • IDEA中Maven使用的踩坑与最佳实践
  • 使用 Python 调用 OpenAI 的接口初识
  • 2025 最新flutter面试总结
  • 【MQ】RabbitMq的可靠性保证
  • STM32 GPIO配置 点亮LED灯
  • Flink把kafa数据写入Doris的N种方法及对比。
  • Vue - 标签中 ref 属性的使用
  • leetcode-不同路径问题
  • MongoDB 数据库备份和恢复全攻略
  • CentOS7使用源码安装PHP8教程整理
  • Baklib助力内容中台实施的最佳实践与成功案例探索
  • rocketmq-product-send方法源码分析
  • python flask中使用or查询和and查询,还有同时使用or、and的情况
  • 【第一天】零基础入门刷题Python-算法篇-数据结构与算法的介绍(持续更新)
  • 租房管理系统实现智能化租赁提升用户体验与运营效率
  • python3+TensorFlow 2.x(四)反向传播
  • Flutter 使用 flutter_inappwebview 加载 App 本地 HTML 文件
  • Word常见问题:嵌入图片无法显示完整
  • 为AI聊天工具添加一个知识系统 之68 详细设计 之9 三种中台和时间度量 之1
  • On to OpenGL and 3D computer graphics
  • 从曾国藩的经历看如何打破成长中的瓶颈