美文网首页
Redis管道与事务

Redis管道与事务

作者: 风雪_夜归人 | 来源:发表于2023-11-05 21:45 被阅读0次

    简介

    管道技术由客户端提供的,与服务器无关,服务器始终使用,收到-执行-回复的顺序处理消息。而客户端通过对管道中的指令列表改变读写顺序,而节省大幅IO时间,指令越多,效果越好。
    管道测试:reids-benchmark(-p )

    管道可以将多个命令大包,一次性发送给服务器处理(类似于批处理)

    事务

    • redis事务指令:multl、exec、discard,虽然可以使用DISCARD取消事务,但是不支持回滚
    • 当输入multl命令后,服务器返回OK表示事务开始成功,然后依次输入需要在本次事务中执行的所有命令,每次输入一个命令服务器并不会马上执行,而是返回"QUEUED",表示命令已经被服务器接收并且暂时保存起来,最后输入exec命令后,本次事务中的所有命令才会被依次执行。
    • 事务错误处理:
      1.语法错误,全部执行
      2.运行错误,出错后仍然继续执行

    事务监测

    • 将其中一个条命令的执行结果作为另外一条命令的执行参数,如i++,需要使用watch命令
    • watch命令可以监控一个或多个键,一旦其中有一个键被修改或删除,之后的事务就不会执行,监控一直持续到exec命令执行
    • 执行exec命令后会取消监控使用watch命令监控的键,如果不想执行事务中的命令,也可以使用unwatch命令来取消监控
    • 使用方式 watch -> multl -> command -> exec

    注意: 由于watch命令的作用只是当被监控的键被修改后取消之后的事务,并不能保证其他客户端不修改监控的值,所以当exec命令执行失败之后需要手动重新执行整个事务(本质上是一种乐观锁)

    相关文章

      网友评论

          本文标题:Redis管道与事务

          本文链接:https://www.haomeiwen.com/subject/kqkoidtx.html