redis分布式集群(httpd+redis+mysql)实现读写分离

Redis分布式集群(4)——MySQL与Redis数据库结合,实现读写分离(lnmp) 文章目录一、读写分离的背景二、搭建nginx+php+redis+mysql实验环境实验1、在server1上安装nginx+php安装nginx并修改配置文件:安装php:建立php和redis,mysql的连接2、在server2上安装redis3、在server3上安装mysql浏览器访问测试测试redis是否会随mysql数据更新而更新 一、读写分离的背景 实际的生产环境当中,客户端对数据... 阅读详情

webserver ->(r/w) redisserver  -> 钩子 ->input ->mysql

webserver -> (redisserver cache)  <--> r w -> mysql  -->update mysql  ->trigger  --> redisserver

主从:不实时,复制延迟,在slave上数据备份

1、环境

server5 :172.25.17.105web
server6 :172.25.17.106redis-cache
server7 :172.25.17.107

mysql

cgi:无

fastcgi:有后台程序

2、部署

server5:

yum install -y httpd php php-mysql

在php中添加redis模块:
    yum install php-devel
    php-redis-master.zip  
    unzip php-redis-master.zip  
    cd php-redis-master
    phpize        
    ./configure --enble-redis
    make 
    make install    生成一个redis.so模块
    cd /usr/lib64/php/modules/    redis.so模块在这里
    vim /etc/php.ini
        data.timezone = Asia/Shanghai
    cd /etc/php.d/
    cp mysql.ini redis.ini
    vim redis.ini
        extension=redis.so
    php - m | grep redis        查看php中的模块

systemctl start httpd
测试脚本:
vim /var/www/html/test.php
<?php
        $redis = new Redis();
        #连接redis数据库
        $redis->connect('server6',6379) or die ("could net connect redis server");
        #     $query = "select * from test limit 9";
        $query = "select * from test";
        for ($key = 1; $key < 10; $key++)
        {
                if (!$redis->get($key))
                {       #连接数据库:server7
                        $connect = mysql_connect('server7','redis','westos');
                        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 "<br>";
        for ($key = 1; $key < 10; $key++)
        {
                echo "number is <b><font color=#FF0000>$key</font></b>";
 
                echo "<br>";
 
                echo "name is <b><font color=#FF0000>$data[$key]</font></b>";
 
                echo "<br>";
        }
?>

server6:

安装数据库:
    yum install gcc
    tar zxf redis-5.0.3.tar.gz
    cd redis-5.0.3/
    make && make install
    cd utils/
    ./install_server.sh
配置数据库:
    vim /etc/redis/6379.conf
        bind 0.0.0.0
启动redis数据库:
    /etc/init.d/redis_6379 start

server7:

yum install mariadb-server

用户授权:
mysql:
    grant all on test.* to redis@'%' identified by 'westos';

初始化数据库:
vim test.sql
use 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');

mysql:
    mysql < test.sql

3、测试

 在server7上边修改数据,查看效果:

 server6上边的redis数据没有同步过来,还是原来的数据

 删掉redis中缓存的数据,重新访问,数据更新,而且redis也会缓存数据:

删除数据缓存之后,可以直接get的到数据,时间可能有延迟。

 

 

tp框架封装redis读写分离类.rar tp框架封装redis读写分离类 立即下载

相关推荐

springboot+mybatis+druid+redis实现数据库读写分离和缓存

springboot+mybatis+druid+redis实现数据库读写分离和缓存

Redis的安装与使用

Redis的安装及基本使用

Yaoao_的博客 383

apache及redis部署

用于服务端服务器部署,主要说明关于apache及redis的部署

Redis主从复制与读写分离

Redis主从复制与读写分离

吴名氏的博客 14万+

【ENVI初学】查看影像空间分辨率及重采样

例如,如果线段长度为900米,对应的像素数量为30个,那么影像的空间分辨率为30米。通过计算长度与像素数量的比值,即可得到影像的空间分辨率。,在弹出的对话框中,输入重采样后输出文件的xy分辨率大小。在测量结果窗口中,可以看到该线段的长度以及角度。在影像上点击并拖动鼠标,绘制一条直线段。工具,选择要重采样的影像后点击ok。,避免了插值过程中光谱信息的改变。:最近邻插值法通过选择原始影像中。在ENVI中打开影像后右键选择。指示了每个像素的地理跨度(聚合为一个新像素,通常通过。方法一:查看影像的元数据。

weixin_41619112的博客 5571

超全!!snowboy语音唤醒(树莓派4b)

通过snowboy进行树莓派的语音唤醒

crimaster1024的博客 8735

mysql理解(二)_缓存

MySql主从复制 1.主库更新事件(update,insert,delete)通过io-thread写入binglog; 2.从库读取binglog,通过io-thread写入(write)从库本地relay log(中继日志); 3.从库通过sql-thread读取(read)relay log,并把更新事件在从库中执行(replay)一遍 例如微博读写分离架构如下图 为什么需要缓冲层? 前提 读多写少,单个主节点能⽀撑项⽬数据量;数据的主要依据是mysql; mysql m.

lyt_dawang的博客 368

(ZOS-API)Matlab控制ZEMAX软件调整光学系统某镜面位姿

所用软件的版本:MatlabR2022a, Zemax OpticStudio2024R1交互扩展功能,Zemax和可以同时打开,操作会比较方便在ZEMAX软件中,调整次镜位置通常有两种方法:1.在次镜前后各添加一个坐标间断面,并修改其“偏心X”“偏心Y”等参数来调整次镜的位姿;2.或者直接在次镜属性选项中设置相关数值。这两种方法对Zernike系数的采集结果无显著影响。

ecilifurt的博客 911

Redis集群(读写分离、哨兵机制、Cluster集群)

文章目录概念概述读写分离哨兵机制Redis内置集群内置集群搭建操作环境 概念概述 读写分离 哨兵机制 Redis内置集群 内置集群搭建 操作环境

Dean_xiu的博客 9658

从外包到转正:一个华为OD亲历者的真实工作体验与避坑指南

本文分享了一位华为OD员工从外包到转正的真实经历与实用建议。通过详细解析华为OD的日常工作、转正核心指标、机试备考技巧及职场突围策略,为读者提供了一份全面的避坑指南。特别针对机试E卷的高频考点和刷题方法,给出了具体的数据分析和实战经验。

weixin_33686714的博客 697

Arduino Uno 实验15——MQ-135 气体传感器模块

MQ-135 气体传感器模块简介(空气质量检测 有害气体检测)   MQ135气体传感器所使用的气敏材料是在清洁空气中电导率较低的二氧化锡(SnO2)。当传感器所处环境中存在污染气体时,传感器的电导率随空气中污染气体浓度的增加而增大。MQ135气体传感器对氨气、硫化物、苯系蒸汽的灵敏度高,对烟雾和其它有害气体的监测也很理想。这种传感器可检测多种有害气体,是一款适合多种应用的低成本传感器。   主要用途:家庭和环境的有害气体检测装置   主要芯片:LM393、MQ-135气体传感器 不同气体的型号选择

weixin_42645653的博客 2万+

Redis分布式集群——httpd+redis+mysql实现读写分离(5)

读写分离1.读写分离的背景2.搭建基本的实验环境3.基本读写分离的具体过程如下 1.读写分离的背景 实际的生产环境当中,客户端对数据库的读操作都是直接找redis拿数据的 如果redis缓存里面没有数据,那么就会去找mysql拿数据,并且给redis中缓存一份 redis中的数据有两种情况不能使用:数据过期了或者mysql中的数据更新了 用户读的时候访问redis,用户写的时候访问mysql 实际上读的需求量是很大的,redis刚好是把数据缓存在内存当中,响应速度也快 也可以降低我们后台mysql数据库的

weixin_21583810的博客 308

硬件工程师笔记——三极管Multisim电路仿真实验汇总

NPN型三极管:由N型半导体、P型半导体和N型半导体组成,即NPN结构。 PNP型三极管:由P型半导体、N型半导体和P型半导体组成,即PNP结构。 三极管的工作原理基于电流的控制和放大,其核心是基区对电流的控制作用。 将三极管等效为两个串联的二极管进行等效分析

XU157303764的博客 2635

Redis分布式集群实战(6)——(httpd+redis+mysql)实现读写分离

1.读写分离的背景 实际的生产环境当中,客户端对数据库的读操作都是直接找redis拿数据的 如果redis缓存里面没有数据,那么就会去找mysql拿数据,并且给redis中缓存一份 redis中的数据有两种情况不能使用:数据过期了或者mysql中的数据更新了 用户读的时候访问redis,用户写的时候访问mysql 实际上读的需求量是很大的,redis刚好是把数据缓存在内存当中,响应速度也快 也可以...

ymeng9527的博客 848

matlab 点云学习目录【2026最新版】

matlab 点云学习目录。博客长期更新,本文最近更新时间为:2026年6月15日。

点云侠的博客 3万+

实操微信支付,适合第一次接通微信支付的同学

我的实际操作命令如下:就会生成图3中多出来的file文件夹,/Users/camel/cert/xxxxxx_cert/file/wechatpay_5A4xxxxxxxxxx9.pem,wechatpay_xxxxx5A4849E9.pem就是微信支付平台证书,也是程序真正需要的。•注意:我的操作说明,我是把下载好的 CertificateDownloader.jar 文件,放在了解压证书的目录里(图3)。//下面的静态参数要仔细看下面的解释,否则只会调用别人写好的方法,压根学不会0-1接入微信支付。

wjianwei666的专栏 525

Redis分布式集群(5)——(httpd+redis+mysql)实现读写分离

1.读写分离的背景 实际的生产环境当中,客户端对数据库的读操作都是直接找redis拿数据的 如果redis缓存里面没有数据,那么就会去找mysql拿数据,并且给redis中缓存一份 redis中的数据有两种情况不能使用:数据过期了或者mysql中的数据更新了 用户读的时候访问redis,用户写的时候访问mysql 实际上读的需求量是很大的,redis刚好是把数据缓存在内存当中,响应速度也快 也可以降低我们后台mysql数据库的压力 一般对于高并发的系统来说,搭建一个健壮的缓存系统是不可避免的。 单机的

qq_42024433的博客 287

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

MGR/GTID/MHA 数据库集群与 Redis/Codis 缓存全套实战教程

本文基于多台 CentOS 虚拟机,完整实操 MySQL MGR 多主、GTID 一主两从、MHA 自动故障切换三类数据库高可用架构,搭配 MySQL Router、LVS+Keepalived 实现三层负载均衡;同时覆盖 Redis 主从、哨兵、Cluster 分片集群,以及 Codis 分布式缓存完整部署,包含源码编译、集群初始化、故障切换、在线扩容全套命令实操,适合数据库与中间件运维进阶实训。

2401_84291419的博客 316

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

Web架构全景 和 业务架构演进

迁移步骤: 应用容器化 (Dockerfile) → 编写 Kubernetes 编排文件 (Deployment / Service / Ingress) → 部署 Nacos / MySQL / Redis Operator → 接入 ELK 日志体系 → Kafka 解耦异步消息 → MinIO 对象存储 → AIOps 智能运维平台搭建。迁移步骤: 申请 SSL 证书 → 上传证书到 Nginx 服务器 → 配置 443 端口 SSL → 配置 80 端口 跳转 443 端口。

corey93的博客 172

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

Linux系统基础服务启动的方法

服务,其实就是运行在操作系统后台的一个或者多个应用程序,为计算机系统或用户提供某项特定的服务。Linux系统运行的绝大多数服务都是需要安装才有的,例如FTP服务、httpd服务、MySQL、redis、Zookeeper、rabbitmq、vsftpd等等,那么我们需要停止、启动、查看运行状态,接下来介绍几款服务启动的方法...

陈同三 2818

OptiScaler完整指南:一键切换DLSS、FSR、XeSS上采样,5分钟开起帧生成

OptiScaler是一款免费开源的游戏上采样中间件:它拦截游戏发出的上采样调用(DLSS2+、FSR2+、XeSS),再转发给你在面板里选定的后端——把它理解成快递中转站,游戏寄出包裹(输入),OptiScaler按你的指令改派到指定仓库(输出)。它覆盖 DirectX 11、DirectX 12 与 Vulkan 三种 API,自 v0.7.0 起还在 DX12 上提供实验性帧生成 OptiF

gitblog_00945的博客 957

NoSQL01 - NoSQL概述 部署Redis服务 、 部署LNMP+Redis

Redis: 搭建Redis数据库服务器 Redis数据库服务基本使用 配置文件的常用配置项 部署Redis集群 &nbsp;*** Redis主从同步 Redis持久化 AOF/RDB &nbsp; MongoDB: 搭建服务器 基本使用 数据备份与恢复 数据导入、导出 文档管理 ++++++++++++++++++++++++++++++++++++ NoS...

万古青天一株莲 978

服务器节点技术解析:从架构原理到家庭实践的全维度指南

摘要: 本文深入解析服务器节点的技术本质与家庭旧电脑改造方案。服务器节点作为分布式系统的基础单元,需具备网络通信、数据处理和协同调度能力,旧电脑通过合理配置(如x86 CPU、2GB内存、100Mbps网卡)即可满足需求。关键技术包括TCP长连接通信、轻量级消息队列(如RabbitMQ)、资源监控(Prometheus)及容器化部署(Docker)。家庭场景下,可搭建私有云(Nextcloud)或加入分布式计算(BOINC),并通过GlusterFS实现多节点存储扩展。优化建议涵盖网络QoS、SSD加速及稳

srlsong的博客 1153

ELK 企业日志分析系统

组件定位核心作用分布式搜索引擎、存储引擎存储结构化日志、毫秒级全文检索、聚合统计、分布式高可用Logstash服务器端数据处理管道日志采集、清洗、格式化、字段转换,统一输出至 ESKibanaWeb 可视化平台日志查询、图表展示、监控仪表盘、集群管理环境初始化:配置 hosts、JDK1.8;双节点 ES 集群部署,开启跨域,安装 head 插件管理集群;Apache 节点部署 Logstash,编写多套采集配置(系统日志、Apache 日志);

2603_95728365的博客 197

运维经典面试题总结100道(含答案)---2026常见面试题

运维工程师面试总结(含答案)_运维面试

流水_鱼鱼的博客 7万+

云原生第一次作业(lvs)

概念:集群是为了解决某个特定问题将堕胎计算机组合起来形成的单个系统(负载均衡)由多个主机组成,每个主机只承担一部分访问[用户访问压力](高可用)SPOF)[调度器挂掉后有另一个替补]MTBF:Mean Time Between Failure 平均无故障时间,正常时间)平均恢复前时间,故障时间A=MTBF/(MTBF+MTTR(0,1)SLA:(服务等级协议)是在一定开销下为保障服务的性能和可用性,服务提供商与用户间定义的一种双方认可的协定。通常这个开销是驱动提供服务质量的主要因素。

mohesashou的博客 1002
上一篇: MFS分布式文件系统,高可用,磁盘共享,fence集群搭建
下一篇: redis分布式集群redis和mysql数据的同步
SS_CC_Go
博客等级 码龄9年 16粉丝 119原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值