在laravel中使用pipeline管道提升redis读写速度

可能有些小伙伴使用redis读写数据在需要循环使用的场景会发现效率并不是很高

于是我分享一个pipeline管道方法

我们这里用12万条数据做测试,首先来试试写入操作,看看用常规方法以列表形式写入:

在laravel中使用pipeline管道提升redis读写速度

可以看到耗时大约 9.2秒

我们再来看看使用pipeline方法进行列表存储,同样是12万条数据:

在laravel中使用pipeline管道提升redis读写速度

可以看到,写入12万条数据此时只需要 3.6秒

执行时间缩短了大约60%!

我们再来试试读取操作,同样是12万条数据,常规方法进行读取:

在laravel中使用pipeline管道提升redis读写速度

可以看到耗时大约是 6.6秒

此时我们继续使用管道方法进行读取:

在laravel中使用pipeline管道提升redis读写速度

可以看到读取12万条数据耗时大约是 2.3秒

执行时间缩短了大约65%!

为什么时间会差这么多呢,因为在for循环里直接使用redis操作,会向redis数据库来回发送多次请求,而pipeline是Redis提供的一种批处理机制,通过将多次请求合并成一次执行,可以有效减少网络请求次数,减少多次IO带来的消耗,速度自然会提升不少

不过需要注意的是:pipeline 期间将 “独占” 链接,此时将不能进行非 “管道” 类型的其他操作,直到 pipeline 关闭。且pipeline数据如果太过庞大,可能会造成内存溢出从而报错:

此时我们就需要对数据进行分割操作或者在php.ini中给php分配更多的内存

Original: https://www.cnblogs.com/luluBear/p/16543428.html
Author: 杏寿郎
Title: 在laravel中使用pipeline管道提升redis读写速度

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/613119/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • 部署zabbix监控服务

    部署zabbix监控服务 部署zabbix监控服务 什么是zabbix zabbix的特点 zabbix的配置文件 部署zabbix zabbix服务端安装 准备工作 数据库操作 …

    数据库 2023年6月14日
    097
  • SQL语句实战学习

    参考:https://zhuanlan.zhihu.com/p/38354000再次感谢作者的整理!! 1.数据已提前准备好了,已知有如下4张表:学生表:student 成绩表:s…

    数据库 2023年6月16日
    083
  • Java 中的线程池

    为什么要用线程池 在 HotSpot VM 的线程模型中,Java 线程被一对一映射为内核线程。 Java 在使用线程执行程序时,需要调用操作系统内核的 API,创建一个内核线程,…

    数据库 2023年6月11日
    069
  • MySQL之视图、触发器、事务、索引及其他知识补充

    一、视图 视图是将SQL语句的查询结果当做虚拟表实体化保存起来,以后可以反复使用 create view teacher2course as select * from teach…

    数据库 2023年5月24日
    088
  • SQL Server解惑——为什么你拼接的SQL语句换行符失效了?

    –========================================================================================…

    数据库 2023年6月11日
    084
  • Decorator 装饰(结构型)

    Decorator 装饰 (结构型) 一:描述: Decorator 装饰模式是动态地给一个对象增加一些额外的功能职责特性。 来替换以前使用的继承来静态扩展对象的功能,避免子类的增…

    数据库 2023年6月11日
    081
  • Kafka集群部署

    404. 抱歉,您访问的资源不存在。 可能是网址有误,或者对应的内容被删除,或者处于私有状态。 代码改变世界,联系邮箱 contact@cnblogs.com 园子的商业化努力-困…

    数据库 2023年6月16日
    077
  • 1_Maven

    一. 引言 1.1 项目管理问题 项目中jar包资源越来越多, jar包的管理越来越沉重 1.1.1 繁琐 要为每个项目手动导入所需的jar, 需要搜集全部的jar 1.1.2 复…

    数据库 2023年6月11日
    0100
  • Java中的数组和集合

    一、List和Map 1、特点 (1)传统的数组结构存储数据会在内存中开辟连续得空间,结合下标从而使得可以快速访问数据,但是删除和添加数据就很浪费资源 (2)链表不需要开辟连续空间…

    数据库 2023年6月6日
    0193
  • index_merge引发的死锁排查

    前几天排查了一个死锁问题,最开始百思不得其解,因为发生死锁的两个事务是单语句事务,语句类型相同(where属性列相同,仅值不同),而且语句都走了相同的索引,但最终确实发生了死锁。通…

    数据库 2023年6月9日
    0110
  • LeetCode 9. 回文数

    题目 题目链接:https://leetcode.cn/problems/palindrome-number/ 给你一个整数x,如果x是一个回文整数,返回true;否则,返回fal…

    数据库 2023年6月11日
    097
  • 新版 google 谷歌浏览器跨域问题

    新版本的firefox火狐浏览器限制了 127.0.0.1 本地部署测试的时候,用火狐浏览器需要把 前端的 后台中的服务地址改成 http://localhost:8081 浏览器…

    数据库 2023年6月6日
    099
  • neo4j数据库数据转移,从阿里云转移到windows服务器

    neo4j数据库数据从阿里云转移到windows 1.从阿里云迁移neo4j时需停掉neo4j数据库,在neo4j的bin目录下输入 ./neo4j stop 2.将数据备份到一个…

    数据库 2023年6月6日
    070
  • Selenium 4 有哪些不一样?

    转载请注明出处❤️ 作者:测试蔡坨坨 原文链接:caituotuo.top/d59b986c.html 你好,我是测试蔡坨坨。 众所周知,Selenium在2021年10月13号发…

    数据库 2023年6月11日
    085
  • 3、数组、集合、Lambda、Stream与Optional类

    一、数组: 数组保存在JVM堆内存中 1、数组的创建: (1)、一维数组创建方式一: //一维数组方式一 Integer[] array01 = {1,2,3}; System.o…

    数据库 2023年6月6日
    098
  • mysql安装及主从复制配置

    一、安装 mysql8.0 下载mysql 安装包http://mirrors.sohu.com/mysql/MySQL-8.0/ wget http://mirrors.sohu…

    数据库 2023年5月24日
    063
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球