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都有概率出现。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/959843.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【Excel】【VBA】Reaction超限点筛选与散点图可视化

【Excel】【VBA】Reaction超限点筛选与散点图可视化 功能概述 这段代码实现了以下功能&#xff1a; 从SAFE输出的结果worksheet通过datalink获取更新数据从指定工作表中读取数据检测超过阈值的数据点生成结果表格并添加格式化创建可视化散点图显示执行时间 流程图 #mermaid-…

Java导出通过Word模板导出docx文件并通过QQ邮箱发送

一、创建Word模板 {{company}}{{Date}}服务器运行情况报告一、服务器&#xff1a;总告警次数&#xff1a;{{ServerTotal}} 服务器IP:{{IPA}}&#xff0c;总共告警次数:{{ServerATotal}} 服务器IP:{{IPB}}&#xff0c;总共告警次数:{{ServerBTotal}} 服务器IP:{{IPC}}&#x…

智能化加速标准和协议的更新并推动验证IP(VIP)在芯片设计中的更广泛应用

作者&#xff1a;Karthik Gopal, SmartDV Technologies亚洲区总经理 智权半导体科技&#xff08;厦门&#xff09;有限公司总经理 随着AI技术向边缘和端侧设备广泛渗透&#xff0c;芯片设计师不仅需要考虑在其设计中引入加速器&#xff0c;也在考虑采用速度更快和带宽更高的总…

RabbitMQ5-死信队列

目录 死信的概念 死信的来源 死信实战 死信之TTl 死信之最大长度 死信之消息被拒 死信的概念 死信&#xff0c;顾名思义就是无法被消费的消息&#xff0c;一般来说&#xff0c;producer 将消息投递到 broker 或直接到queue 里了&#xff0c;consumer 从 queue 取出消息进…

git常用命令学习

目录 文章目录 目录第一章 git简介1.Git 与SVN2.Git 工作区、暂存区和版本库 第二章 git常用命令学习1.ssh设置2.设置用户信息3.常用命令设置1.初始化本地仓库init2.克隆clone3.查看状态 git status4.添加add命令5.添加评论6.分支操作1.创建分支2.查看分支3.切换分支4.删除分支…

私有包上传maven私有仓库nexus-2.9.2

一、上传 二、获取相应文件 三、最后修改自己的pom文件

汽车定速巡航

配备定速巡航功能的车型&#xff0c;一般在方向盘附近设有4~6个按键&#xff08;可能共用键位&#xff09;。 要设置定速巡航&#xff0c;不仅需要方向盘上的按键&#xff0c;还要油门配合。 设置的一般流程&#xff1a; 开关&#xff1a;类似步枪上的“保险”&#xff0c;按…

安宝特方案 | AR在供应链管理中的应用:提升效率与透明度

随着全球化的不断深入和市场需求的快速变化&#xff0c;企业对供应链管理的要求也日益提高。如何在复杂的供应链环境中提升效率、降低成本&#xff0c;并确保信息的透明度&#xff0c;成为了各大行业亟待解决的问题。而增强现实&#xff08;AR&#xff09;技术&#xff0c;特别…

JavaScript(8)-函数

一.什么是函数&#xff1a;执行特定任务的代码块 讲js中需要的公共部分抽取并封装&#xff0c;谁用谁调用&#xff0c;代码复用。 先声明&#xff0c;后调用 使用function函数名需要调用的内容 使用&#xff1a;函数名&#xff08;&#xff09; 二.使用方式 声明&a…

HTML<label>标签

例子 三个带标签的单选按钮&#xff1a; <form action"/action_page.php"> <input type"radio" id"html" name"fav_language" value"HTML"> <label for"html">HTML</label><br&…

4.flask-SQLAlchemy,表Model定义、增删查改操作

介绍 SQLAlchemy是对数据库的一个抽象 开发者不用直接与SQL语句打交道 Python对象来操作数据库 SQLAlchemy是一个关系型数据库 安装 flask中SQLAlchemy的配置 from flask import Flask from demo.user_oper import userdef create_app():app Flask(__name__)# 使用sessi…

【C++初阶】第11课—vector

文章目录 1. 认识vector2. vector的遍历3. vector的构造4. vector常用的接口5. vector的容量6. vector的元素访问7. vector的修改8. vector<vector\<int\>>的使用9. vector的使用10. 模拟实现vector11. 迭代器失效11.1 insert插入数据内部迭代器失效11.2 insert插入…

GPT 结束语设计 以nanogpt为例

GPT 结束语设计 以nanogpt为例 目录 GPT 结束语设计 以nanogpt为例 1、简述 2、分词设计 3、结束语断点 1、简述 在手搓gpt的时候&#xff0c;可能会遇到一些性能问题&#xff0c;即关于是否需要全部输出或者怎么节约资源。 在输出语句被max_new_tokens 限制&#xff0c…

PTMD2.0-疾病相关的翻译后修饰数据库

翻译后修饰&#xff08;PTMs&#xff0c;post-translational modifications&#xff09;通过调节蛋白质功能参与了几乎所有的生物学过程&#xff0c;而 PTMs 的异常状态常常与人类疾病相关。在此&#xff0c;PTMD 2.0展示与疾病相关的 PTMs 综合数据库&#xff0c;其中包含 93 …

ArcGIS10.2 许可License点击始终启动无响应的解决办法及正常启动的前提

1、问题描述 在ArcGIS License Administrator中&#xff0c;手动点击“启动”无响应&#xff1b;且在计算机管理-服务中&#xff0c;无ArcGIS License 或者License的启动、停止、禁止等均为灰色&#xff0c;无法操作。 2、解决方法 ①通过cmd对service.txt进行手动服务的启动…

spring框架之IoC学习与梳理(1)

目录 一、spring-IoC的基本解释。 二、spring-IoC的简单demo&#xff08;案例&#xff09;。 &#xff08;1&#xff09;maven-repository官网中找依赖坐标。 &#xff08;2&#xff09;.pom文件中通过标签引入。 &#xff08;3&#xff09;使用lombok帮助快速开发。 &#xff…

系统架构设计师教材:信息系统及信息安全

信息系统 信息系统的5个基本功能&#xff1a;输入、存储、处理、输出和控制。信息系统的生命周期分为4个阶段&#xff0c;即产生阶段、开发阶段、运行阶段和消亡阶段。 信息系统建设原则 1. 高层管理人员介入原则&#xff1a;只有高层管理人员才能知道企业究竟需要什么样的信…

基于STM32单片机设计的宠物喂食监控系统

1. 项目开发背景 随着宠物数量的增加&#xff0c;尤其是人们对宠物的养护需求日益增多&#xff0c;传统的人工喂养和管理方式难以满足现代养宠生活的需求。人们越来越希望通过智能化手段提高宠物养护的质量和效率&#xff0c;特别是对于宠物喂食、饮水、温湿度控制等方面的智能…

帕金森患者:科学锻炼,提升生活质量

帕金森病&#xff0c;作为一种常见的神经系统退行性疾病&#xff0c;给患者的日常生活带来了诸多挑战。然而&#xff0c;通过科学的锻炼&#xff0c;患者不仅可以在一定程度上缓解症状&#xff0c;还能提升生活质量。本文将详细介绍帕金森患者应该进行的几种关键锻炼&#xff0…

GA-CNN-LSTM-Attention、CNN-LSTM-Attention、GA-CNN-LSTM、CNN-LSTM四模型多变量时序预测一键对比

GA-CNN-LSTM-Attention、CNN-LSTM-Attention、GA-CNN-LSTM、CNN-LSTM四模型多变量时序预测一键对比 目录 GA-CNN-LSTM-Attention、CNN-LSTM-Attention、GA-CNN-LSTM、CNN-LSTM四模型多变量时序预测一键对比预测效果基本介绍程序设计参考资料 预测效果 基本介绍 基于GA-CNN-LST…