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

      Redis 通过multi discard exec 和watch 四个命令实现事物的功能。使用方法如下:
    首先使用multi 方法打开事物,然后进行后续的增删改操作。修改完成后,使用exec 将事物提交。或者使用discard 方法取消事物。

    一个事物从开始到执行会经历以下三个阶段:
    1.开始事物
    2.命令入列
    3.执行事物
    第一阶段: redis从非事物状态变为事物状态
    第二阶段:当redis不是事物状态时,服务器收到来自客户端的命令时,会将命令立即执行。当redis处于事物状态时,首先会将命令存入一个事物队列中,然后返回queued 表示已存入队列。事物队列的底层实现是一个数据,每个数组项都包含三个属性:
    1.要执行的命令 2.命令的参数 3.参数的个数
    第三阶段:执行事物,当所有命令被执行后,将执行结果返回给客户端,redis从事物状态返回到非事物状态。

    事物执行特性:
    1.事物会以一个事物为单位执行队列中所有命令,除非当前事物执行完毕,不然不会中断事物,也不会执行其他客户端的命令
    2.事物中多条命令会集合到回复队列,在作为命令结果返回给客户端。
    Watch 在开始事物之前 watch 一个或多个key 当watch命令执行后key值发生修改,exec时,事物不再执行,直接返回失败。


    原子性: redis单个指令是原子性的,但是事物并不是,当redis执行事物执行到一半被关闭进程时,事物执行失败,redis不会回滚或者继续执行。
    持久性: redis 事物只是把命令放入一个队列中,没有提供额外持久性功能。持久化跟redis使用的持久化模式相关。不能保证持久性。

    文章来源:http://www.cnblogs.com/liyasong/
  • 相关阅读:
    14.7.1 重新调整InnoDB系统表空间的大小
    css代码引入方式与基本选择器
    html常用标签
    python数据库操作
    pt-osc使用一则
    mysql优化一则(20170703)
    进程与生产者消费者模型
    面向对象程序设计
    常用模块
    模块与包
  • 原文地址:https://www.cnblogs.com/liyasong/p/redis_t.html
Copyright © 2011-2022 走看看