• Redis事务中几种常见的场景-exec执行前后的语法错误时的处理


    场景

    Centos中Redis的下载编译与安装(超详细):

    https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/103967334

    Redis的启动和关闭(前台启动和后台启动):

    https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/103972348

    RedisDesktopManager客户端可视化工具下载安装与使用:

    https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/103983147

    通过以上教程将Redis的环境搭建起来后,实现Redis的事务流程。

    注:

    博客:
    https://blog.csdn.net/badao_liumang_qizhi
    关注公众号
    霸道的程序猿
    获取编程相关电子书、教程推送与免费下载。

    实现

    正常事务流程

    带回滚的事务流程

    事务执行exec之前,入队命令错误(语法错误;严重错误导致服务器不能正常工作),放弃事务

    步骤:

    multi正常命令

    setkeyvalue正常命令

    incr命令语法错误

    exec无法执行事务,第一条正确的命令也不会执行。

    事务执行exec命令后,执行队列命令,命令执行错误,事务提交

    步骤:

    multi正常命令

    set username badao 正常命令

    lpop username 正常命令,语法没有错误,执行命令时才会有错误。

    exec正常执行,发现错误可以在事务提交前放弃事务, 执行discard

    结论:

    在exec执行后所产生的错误中,即使事务中有某个/某些命令在执行时产生了错误,事务中的其他命令仍然会

    继续执行。Redis在事务失败时不进行回滚,而是继续执行余下的命令。

    Redis的这种设计原则是:Redis命令只会因为错误的语法而失败(这些问题不能在入队时发现),或是命令用在了错误类型的键上面

    失败的命令不是Redis所致,而是由编程错误造成的,这样错误应该在开发的过程中被发现,生产环境中不应出现的错误。

    就是在程序的运行环境中不应该出现语法的错误。而Redis能够保证正确的命令一定会被执行。 

    博客园: https://www.cnblogs.com/badaoliumangqizhi/ 关注公众号 霸道的程序猿 获取编程相关电子书、教程推送与免费下载。
  • 相关阅读:
    JS 博客园鼠标点击效果
    安卓socket聊天
    抖音C#版,自己抓第三方抖音网站
    C#网易云音乐播放器
    反编译APK
    Raspberry Config.txt 介绍
    Raspberry U盘操作
    排序(I)
    未解决问题:
    CocoaPod 问题(I)
  • 原文地址:https://www.cnblogs.com/badaoliumangqizhi/p/12552228.html
Copyright © 2020-2023  润新知