• Redis的事务管理


    redis也支持事务,但与MySQL等关系型数据库相比,redis的事务比较简单。

    一、redis事务的特点
    1、redis的事务是一组命令集合

        可以把redis的事务看成一个命令的缓存,把一组要执行的命令添加到集合中,然后按顺序一起执行。

    2、redis事务没有隔离级别

        由于redis是单线程的,下一个命令必须在上一个命令完成后才会执行。因此不会有多个事务同时执行的情况,因此也就不需要定义隔离级别。

    3、redis事务不保证原子性

        redis的单条命令是保证原子性的,但是事务不保证原子性,即事务中某个命令的失败不会影响其它命令的执行和结果。

    二、事务的实现步骤
    1、开启事务

    multi命令用于开启一个事务,此命令没有参数

    2、添加命令

        编写要执行的数据库操作命令

    3、执行事务或取消事务

    1)使用exec命令执行事务

    示例

    multi
    set str1   '字符串1'
    set str2 '字符串2'
    exec

    2)使用discard命令取消事务

    multi
    set str1 '字符串1'
    set str2 '字符串2'
    discard

    三、事务监听
        事务监听可以用于做为事务锁(乐观锁)使用,当另一个程序修改了某个key的值时,当前事务会被中断执行。

    1、开启监听

        在事务创建之前使用watch命令可以监听key的变化,当使用exec开始执行事务时,会检查被监听的key是否有变化,如果有变化,则中断事务的执行。

    语法

    watch key [key...]

    2、取消监听

        当事务已开始执行或是取消,则会自动取消监听,也可以使用unwatch命令手动结束监听。

    示例

    watch str1

    multi

    set str1 '字符串1'
    unwatch //取消监听,后面必须还有语句,否则无效
    set str2 '字符串2'
    exec       //因在执行前修改了str1的值,执行会被中断

    //在另一个命令行窗口执行以下命令,此命令需要在exec之前执行
    set str1 '字符串11'
     

     文章来源于哔站《Redis的事务管理

    更多学习视频和专栏文章请到哔站个人空间: 布道师学院的个人空间-布道师学院个人主页-哔哩哔哩视频

    更多资源和项目下载请到:”开源吧(找实战项目和毕设项目的好网站)“ ​ :开源吧

     

  • 相关阅读:
    开发小程序如何使用iconfont彩色图标
    java 泛型
    大数据实训
    《SpringMVC入门》SpringMVC工作原理
    语音增强——DNN(深度神经网络)频谱映射
    5 原型模式 Prototype
    Windows OpenGL 图像绿幕抠图
    FFmpeg入门 - rtmp推流
    国民技术N32G45x双ADC规则同步模式配置
    《鸿蒙生态应用开发白皮书》读后感
  • 原文地址:https://blog.csdn.net/ouyangqing/article/details/133513053