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

    redis 事物

    • 一组命令的组合
    • 同样也是redis执行的最小单位,要么全执行要么全不执行,具有原子性
    • redis事物没有回滚功能

     

    语法

    Multi
    
    command1
    command2
    ...
    commandN 
    
    Exec

     

    执行错误怎么办?

    command1 - OK

    command2 - ERROR

    command3 - ERROR

    command4 - OK


    redis 2.6.5 之前:以上执行到command2出错后后面的comman3 command4 不再执行;

    redis 2.6.5+ :四条命令都会执行

    所以不要在redis事物中出现运行错误,因为redis不支持回滚。

     


     

    Watch命令

    Watch命令可以监控一个或多个键,一旦其中一个被修改(或删除),之后的事物就不会执行。

    Watch  key                    # 监视键key
    value = getValue(key)         # 获取键的值
    
    Multi                         # 开始一个事物
    command1                      # 如果此时key的值被修改或删除则事物中断执行
    ...
    set key 10  
    commandx
    commandy
    Exec

     

    例外: 如果一个键因为过期被删除,这种情况下Watch不会认为该键被修改(删除)。

     


     

    键过期时间

    设置一个存在的键在x秒后 或x毫秒后过期(删除) 

    Expire     key     seconds         # seconds秒后过期
    PExpire    key     milliseconds    # milliseconds毫秒后过期

     

    获取键的剩余时间

    set  key1 value1
    expire key1  10           # key1 10秒后过期
    ttl   key1                # 返回剩余过期秒数,当key1已经过期后返回-2
    
    
    set key2  value2          # 不对key2设置过期时间
    ttl   key2                # 返回-1
    
    
    ttl key3                  # 对不存在的键取其剩余过期时间返回-2
    
    
    set key4 value4
    PExpire key4 10000        # key4 10000毫秒后过期
    ttl   key4                # 仍然返回剩余过期时间秒数,而非毫秒

     

     

     

     

     

     

    **********************技术交流请 email:cuihao0532#163.com 欢迎转载,转载请注明出处!***************************** 如果对本文满意请扫描文章左侧【二维码添加微信】获取更多好玩、有趣、有益、有营养的料, 你我共同成长!Y(^_^)Y
  • 相关阅读:
    最大回文子串
    找出不含重复字符的最长子串的长度
    链表表示的2个数相加
    如何胜任一个小型公司的技术总监?我的感想
    React 的坑
    MobX 学习
    摘要
    AI 帮助涂鸦
    计算机的前世今生
    常用编辑器实用技巧(pycharm、sublimeText、vim、vscode、Jupyter)
  • 原文地址:https://www.cnblogs.com/cuish/p/14791646.html
Copyright © 2011-2022 走看看