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

redis事务-pipeline-lua三者区别简单概括

6.1pipeline、lua、redis事务区别以及应用场景_哔哩哔哩_bilibili

https://www.bilibili.com/video/BV1PV4y1h7Y3/

一、redis事务

原子性:

一旦提交,所有该事务里面所有的命令都会被执行,可能有些命令执行失败,但是剩下的命令依旧会被执行。

个人感觉比MySQL的原子性差了一些。

二、lua脚本

一般我会用lua脚本来代替。

官方默认lua脚本是原子性的,应该是和MySQL的原子行差不多的。

lua脚本的所有命令要么全部执行成功要么全部执行失败。

一般是做一些逻辑比较严密的处理。

阻塞其他redis操作,直到lua脚本完全执行完毕才会执行其他命令。

我认为lua可以执行批量处理

如果lua脚本执行的时间太长,那么要优化下lua脚本,因为lua会阻塞其他操作,所以说lua脚本不适合执行太长时间。

三、pipeline

1、批量处理数据,一次性返回所有结果集。就可以对这个结果集进行处理,考验处理结果集的能力。

一个pipeline的命令集被redis服务器执行的时候,有可能redis服务器会执行其他客户端传来的redis命令。

一些异常情况尽可能发生,所以说使用pipeline一般会做一些异常捕获和处理。

其他的参考以及学习:
https://blog.csdn.net/ws_please/article/details/131623599

其他类似的文章:

(108条消息) springboot+redis+mysql+quartz-通过Java操作redis的KEYS*命令获取缓存数据定时更新数据库_xin麒的博客-CSDN博客

(108条消息) springboot+redis+mysql+quartz-通过Java操作jedis定时使用lua脚本获取缓存数据并更新数据库_xin麒的博客-CSDN博客

(108条消息) lua脚本获取table类型-Java使用lua脚本操作redis获取zset元素的集合_xin麒的博客-CSDN博客

(108条消息) springboot+redis+mysql+quartz-通过Java操作jedis使用pipeline获取缓存数据定时更新数据库_xin麒的博客-CSDN博客

(108条消息) springboot+redis+mysql+quartz-通过Java操作jedis的scan命令获取缓存数据定时更新数据库_xin麒的博客-CSDN博客

(108条消息) redis事务-pipeline-lua三者区别简单概括_xin麒的博客-CSDN博客


http://www.kler.cn/a/37294.html

相关文章:

  • C#基础学习_集合中对象的动态排序
  • spring-java面向切面拦截器
  • C/C++服务器和客户端交互笔记
  • MySQL (select查询的基本用法及select相关练习)
  • Linux操作系统——第五章 进程信号
  • 2. CSS3的新特性
  • SpringBoot + Kotlin 中使用 GRPC 进行服务通信
  • re学习(15)BUUCTF 2019红帽杯easyRe
  • 常用化合物谱图数据库查询系统-40个软件免费查!
  • 四、评估已建立的模型
  • 如何系统学习分布式?
  • Flink实时任务性能调优
  • 复习java基础
  • 中国移动光猫设置桥接
  • C++结合EasyX写扫雷(new)
  • window.getComputedStyle
  • 【Linux后端服务器开发】管道设计
  • 2023大数据面试总结
  • 【C#】并行编程实战:同步原语(1)
  • jquery html特殊字符反转义,JS - 实现HTML标签的转义、反转义的几种方法