redis监听写入mysql_数据库应用之--Redis+mysql实现大量数据的读写,以及高并发

本文介绍了在面临大量数据读写及并发需求时,通过Redis作为缓存来减轻MySQL压力的解决方案。文章讨论了Redis监听写入MySQL的场景,并提供了一个100000条数据的Redis+MySQL同步示例,以减少服务器压力并提高系统响应速度。
摘要由CSDN通过智能技术生成

一、开发背景

在项目开发过程中中遇到了以下三个需求:

1. 多个用户同时上传数据;

2. 数据库需要支持同时读写;

3. 1分钟内存储上万条数据;

根据对Mysql的测试情况,遇到以下问题:

1. 最先遇到压力的是服务器,在写入2500-3000条数据时,服务器崩溃了;

2. 当数据库写入时,耗时太长,10000条数据,大概需要505.887s,相当于8分钟,如下:

a. 表结构:

a932f509b58ec97f04722b97a44d57c6.png

b. 数据库Procedure:

DROP PROCEDURE IF EXISTSmy_insert;CREATE PROCEDUREmy_insert()BEGIN

DECLARE n int DEFAULT 1;

loopname:LOOPINSERT INTO car_pathinfo_driver_cpy(id, linkphone,cartype,carcolor,carnumber,drivername,pubtimes)VALUES(n+500,'18838325709','雪弗兰','白','豫A190XS','siker','3');SET n=n+1;IF n=10000 THENLEAVE loopname;END IF;ENDLOOP loopname;END;

CALL my_insert();

c. 运行结果如下:

7a34c81175e845aa430118512ba88ac1.png

3. 不断的数据库写入导致数据库压力过大;

出现以上问题,是由于mysql是基于磁盘的IO,基于服务响应性能考虑,就需要给数据做缓存,所以决定使用Mysql+redis缓存的解决方案,将业务热数据写入Redis缓存,使得高频业务数据可以直接从内存读取,提高系统整体响应速度。

二、使用Redis+Mysql需要考虑的问题

使用redis缓存+mysql数据库存储能解决:

1. 数据读写的速度

2. 服务器的压力问题

同时,就需要考虑同步问题了,Redis和Mysql的同步问题

三、Redis+mysql同步解决方案

1.写Redis->redis写mysql,读Mysql。

以下是一个Redis+mysql同步的示例,该示例测试了写入100000条数据的效率,先向Redis写入100000条数据,再将数据读出,写入Mysql。

批量写入缓解了服务器的压力。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值