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/
  • 相关阅读:
    ESP8266 STA TCP 客户端配置并连接通信
    Modbus CRC16 校验计算函数
    自写简易版从机Modbus
    STM32CubeIDE查看内存使用情况
    WPF 样式Style
    WPF选项卡页面分离之Page调用Window类
    WPF 多个选项卡TabControl 页面分离
    STM32Cube IDE 汉字字体变小解决办法
    浮点数double相等性比较
    Ling应用
  • 原文地址:https://www.cnblogs.com/liyasong/p/redis_t.html
Copyright © 2011-2022 走看看