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

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.kler.cn/a/518836.html

相关文章:

  • 将Deepseek接入本地Vscode
  • 对于Docker的初步了解
  • 夸父计步器0.02
  • 记一次Linux共享内存段排除Bug:key值为0x0000000的共享内存段删除不了
  • android 获取图标主要颜色作背景色
  • Gurobi基础语法之字典
  • Leecode刷题C语言之找到最接近0的数字
  • 网络安全 | F5-Attack Signatures详解
  • mysql-04.索引
  • 2_高并发内存池_各层级的框架设计及ThreadCache(线程缓存)申请内存设计
  • 数据可视化的图表
  • 找不到mfc140u,具体原因分析
  • Ubuntu20.04 深度学习环境配置(持续完善)
  • RA-Eco-RA2L1-48PIN-V1.0开发板前期准备避坑指南
  • Apache Doris 2.1.8 版本正式发布
  • 51单片机——串口向电脑发送数据
  • RDMA 工作原理 | 支持 RDMA 的网络协议
  • C语言教程——文件处理(2)
  • 神经网络|(四)概率论基础知识-古典概型
  • MaxCompute—阿里云原生大数据计算机服务——SQL概述与服务支持