4.redis-事务和管道

这篇具有很好参考价值的文章主要介绍了4.redis-事务和管道。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

一.事务

  1.特性

  2.命令

二.管道 pipe

  1.操作

  2.与原生批量命令对比

  4.注意事项


一.事务

  1.特性

    1) 单独的隔离操作

      Redis的事务仅仅是保证事务里的操作会被连续独占得执行,redis命令执行是单线程架构,在执行完事事务内所有指令是不可能再去同时执行其他客户端的请求

    2) 没有隔离级别的概念

  在事务外查询可以看到要更新的数据

    3) 不保证原子性

    所有指令同时成功或同时失败,没有回滚的能力

    4) 排他性

     保证一个事务内的命令依次执行,而不会被其他命令插入

  2.命令

    1) 正常

multi 开启事务

exec 提交

    2) 放弃

multi 开启事务

discard 

    3) 如果命令是语法类的错误会全部回滚,但语法没错编译出错,像数据类型不应该有的操作,不会全部回滚,正确的会继续提交。

    4) watch 监控, 命令没有执行前,有其他连接修改了此key,那么事务中所有操作失败

watch key1

multi

exec

    5) unwatch 中途放弃监控,就可避免4)的情况

watch key1

unwatch

multi

exec

二.管道 pipe

  1.操作

    1) 写批处理 vi cmd.txt

set k100 v100

set k200 v200

hset k300.name atgugu

hset k300.age 20

lpush list 1 2 3 4 5

    2) 管道执行

cat cmd.txt | redis-cli -a 111111 --pipe

  2.与原生批量命令对比

    1) 原生批量命令是原子性,管道是非原子性

    2) 原生批量命令一次只能执行一种命令,管道支持批量执行不同命令

    3) 原生批量命令是服务端实现,而管道需要服务器与客户端共同完成

  3.与事务对比

    1) 事务具有原子性,管道不具有原子性

    2) 管道一次性将多条命令发送到服务器,事务是逐条发,事务只有在接收到exec命令后才会执行

    3) 执行事务时会阻塞其他命令,而执行管道中的命令时不会

  4.注意事项

    1) 命令不要太多,否则占用内存

    2) 没有原子性,一个失败其他命令会继续执行文章来源地址https://www.toymoban.com/news/detail-405459.html

到了这里,关于4.redis-事务和管道的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • MySQL的事务特性、事务特性保证和事务隔离级别

            事务是指要么所有的操作都成功执行,要么所有的操作都不执行的一组数据库操作。 一、MySQL提供了四个事务特性,即ACID:          1. 原子性(Atomicity) :一个事务中的所有操作要么全部提交成功,要么全部回滚失败,保证事务的原子性。          2. 一

    2024年02月03日
    浏览(42)
  • 【Redis学习】Redis管道

    问题由来 客户端向服务端发送命令分四步(发送命令→命令排队→命令执行→返回结果),并监听Socket返回,通常以阻塞模式等待服务端响应。 服务端处理命令,并将结果返回给客户端。 上述两步称为:Round Trip Time(简称RTT,数据包往返于两端的时间) 如果同时需要执行大量的命令

    2023年04月09日
    浏览(35)
  • 【redis】redis管道简述

    redis管道可以一次性发送多条命令。 命令示例如下: 下面先简述一下这条命令的组成,再简述一下管道的常用场景和注意事项。 首先,\\\'|\\\'是Linux中的管道符,即管道符之前命令的输出作为管道符之后命令的输入。 再看下管道符之前的命令,echo -e。echo实际上是返回输入字符串

    2024年02月17日
    浏览(37)
  • 事务——什么是事务,事务的特性,事务的隔离级别

            事务就是用户定义的一系列操作,这些操作可以视为一个完成的逻辑处理工作单元,要么全部执行,要么全部不执行,是不可分割的工作单元。 典型场景:银行转账 A 转账100元给B,A账户减少100元,B账户增加100元; 如果A转出失败或者B转入失败(任意一方失败)

    2024年02月10日
    浏览(51)
  • 56.Spring事务:事务四大特性

    原子性(Atomicity) 原子性是指事务包含的所有操作要么全部成功,要么全部失败回滚, 因此事务的操作如果成功就必须要完全应用到数据库,如果操作失败则不能对数据库有任何影响。 一致性(Consistency) 一致性是指事务必须使数据库从一个一致性状态变换到另一个一致性

    2024年01月16日
    浏览(39)
  • javaee 事务 事务的特性 事务的并发问题 事务的隔离级别

    是并发控制的单元,是用户定义的一个操作序列。这些操作要么都做,要么都不做,是一个不可分割的工作单位。通过事务,sql 能将逻辑相关的一组操作绑定在一起,以便服务器 保持数据的完整性。事务通常是以begin/start transaction开始,以commit或rollback结束。Commint表示提交,

    2024年02月09日
    浏览(50)
  • Redis管道操作

    如何优化频繁命令往返造成的性能瓶颈? Redis是一种基于C/S一级请求响应协议的TCP服务,一个请求会遵循一下步骤: 客户端向服务端发送命令分四步(发送命令- 命令排队- 命令执行- 返回结果),并监听Socket返回,通常以阻塞方式等待服务器响应。 服务端处理命令,并将结

    2024年01月18日
    浏览(45)
  • redis管道代码

    1:如果将redis的key,在redis删除或者过期,返回数据会是null 2:返回的list是所有key的合集 ,如果key不存在,则返回null 3:  存的key和value是否是二进制跟你的配置文件有关,    准备的数据 execute :方法是串行的,命令请求发出后,必须得到响应数据,才能发送下一条命令请求

    2024年02月16日
    浏览(33)
  • Redis管道

    背景 Redis是一种基于客户端-服务端模型以及请求/响应协议的TCP服务。一个请求会遵循以下步骤: 1 客户端向服务端发送命令分四步(发送命令→命令排队→命令执行→返回结果),并监听Socket返回,通常以阻塞模式等待服务端响应。 2 服务端处理命令,并将结果返回给客户端。

    2024年02月05日
    浏览(39)
  • Redis之管道解读

    目录 基本介绍 使用例子 管道对比 管道与原生批量命令对比  管道与事务对比  使用pipeline注意事项  基准测试 基本介绍 Redis是一种基于客户端-服务端模型以及请求/响应协议的TCP服务器。 这意味着请求通常按如下步骤处理: 客户端发送一个请求到服务器,并以阻塞的方式

    2024年02月10日
    浏览(31)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包