• 狂神redis笔记09


     开启事务 multi:

    命令入队就是写正常的其它命令

    执行事务是exec

    正常执行事务!

    放弃事务:

    我们每次事务执行完毕就结束了,下次想使用事务还要重新开启:

     

    编译性异常(代码有问题!命令有错!)事务中所有的命令都不会被执行!

     

    运行时异常(1/0),如果事务队列中存在语法性错误,那么执行命令的时候,其它命令是可以正常执行的,错误命令抛出异常!

     

    监控!

     

    监视测试:

    我们监视我们的money,正常执行成功是这样的。

    测试多线程修改值,使用watch可以当做redis的乐观锁操作!

    我们再开一个服务端

     

    我们的线程2取出10块,还没有执行事务。

    这时候线程1又去把余额充值到1000了:

     

    我们在执行之前,另外一个事务修改值,我们执行就失败了!

     那我们能不能去解决这个问题呢?

    如果修改失败,获取最新的值就好。

    unwatch:如果发现事务执行失败,就先解锁。

    watch:获取最新的值,再次监视,select version

    exec:比对监视的值是否发生了变化,如果没有变化,那么可以执行成功,如果变化就执行失败。重复这个操作就可以了。

    面试的时候redis经常问乐观锁。

     

    我们去创建一个java空项目:

     里面创建一个module。

    首先我们要去导入我们的jedis的包:

    编码测试:

    连接数据库

    操作命令

    断开连接

     

    我们这里是启动了我们本地的redis:

     

    常用的Api我们直接看一下就行和之前的命令都差不多:

     

     

    这里我就不去自己写代码了,直接截屏狂神的代码。

     

     

     

     

     

     

     我们现在来用jedis做一个正常的事务:

     

     

     

     

    我们这里有残余是没有清空缓存。

    我们加上flushdb:

     

     

    我们现在就可以使用我们的java去做所有的我们redis的功能了。下一次课我们会去在springboot里去整合我们的redis. 

  • 相关阅读:
    【linux API分析】module_init
    Android入门第24天-Adapter使用初步-最简单的一个Adapter的使用
    HTML,CSS
    ArcGIS pro 支持 发布三维服务
    Android studio在Ubuntu桌面上 创建桌面图标,以及导航栏图标
    SVN安装教程
    32、多租户(multi-tenancy)
    PyTorch 入门之旅
    【测试人生】游戏业务测试落地精准测试专项的一些思路
    设计模式4、建造者模式 Builder
  • 原文地址:https://blog.csdn.net/weixin_52618349/article/details/125929097