zoukankan      html  css  js  c++  java
  • redis事务

    Redis 事务 事务可以理解为一个打包的批量执行脚本,但批量指令并非原子化的操作,中间某条指令的失败不会导致前面已做指令的回滚,也不会造成后续的指令不做。
    https://www.runoob.com/redis/redis-transactions.html

    Redis 事务可以一次执行多个命令, 并且带有以下三个重要的保证:

    批量操作在发送 EXEC 命令前被放入队列缓存。
    收到 EXEC 命令后进入事务执行,事务中任意命令执行失败,其余的命令依然被执行。
    在事务执行过程,其他客户端提交的命令请求不会插入到事务执行命令序列中。
    

    一个事务从开始到执行会经历以下三个阶段:

    开始事务。
    命令入队。
    执行事务。
    

    https://blog.csdn.net/kingmax54212008/article/details/82731150

    一个事务从开始到执行会经历以下三个阶段:

    开始事务。
    命令入队。
    执行事务。
    

    在事务和非事务状态下执行命令

    无论在事务状态下, 还是在非事务状态下, Redis 命令都由同一个函数执行, 所以它们共享很多服务器的一般设置, 比如 AOF 的配置、RDB 的配置,以及内存限制,等等。

    不过事务中的命令和普通命令在执行上还是有一点区别的,其中最重要的两点是:

    非事务状态下的命令以单个命令为单位执行,前一个命令和后一个命令的客户端不一定是同一个;
    
    而事务状态则是以一个事务为单位,执行事务队列中的所有命令:除非当前事务执行完毕,否则服务器不会中断事务,也不会执行其他客户端的其他命令。
    
    在非事务状态下,执行命令所得的结果会立即被返回给客户端;
    
    而事务则是将所有命令的结果集合到回复队列,再作为 EXEC 命令的结果返回给客户端。
    

    discard

    命令用于取消事务,放弃执行事务块内的所有命令。

    exec

    用于执行所有事务块内的命令。

    multi

    用于标记一个事务块的开始。事务块内的多条命令会按照先后顺序被放进一个队列当中,最后由 EXEC 命令原子性(atomic)地执行。

    unwatch

    用于取消 WATCH 命令对所有 key 的监视。

    watch

    用于监视一个(或多个) key ,如果在事务执行之前这个(或这些) key 被其他命令所改动,那么事务将被打断

  • 相关阅读:
    变Win 2003为工作站
    搞笑短信
    ECC加密算法入门介绍
    搞笑短信
    万能Ghost系统制作教程
    “注册编辑已被管理员停用”之解决办法
    让Win7任务栏的“库”显示“我的电脑”
    全景拼图利器PTGui Pro 9.1.6 Retail汉化版
    Win7远程桌面不能连接的解决方案
    到底谁霸占了A类的IP地址
  • 原文地址:https://www.cnblogs.com/djwhome/p/12543330.html
Copyright © 2011-2022 走看看