一、事务
Redis事务本质:一组命令的集合。一个事务中所有命令都会被序列化,在事务执行过程中,会按照顺序执行。一次性、顺序性、排他性。
Redis的事务步骤:
1、开启事务(multi) 2、命令入队(就是普通命令) 3、执行事务(exec)
编译型异常(代码有问题、命令出错):事务中所有的命令都不会执行
运行时异常(1/0):如果事务队中存在语法错误,那么执行命令的时候,其他命令是可以正常执行的
二、监控
悲观锁:很悲观,认为什么时候都会出问题,无论做什么都会加锁。每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁。
乐观锁:很乐观,认为什么时候都不会出问题,所以不会上锁!更新数据的时候去判断一下,在此期间是否有人修改过这个数据。开启事务前,设置对数据的监听(watch),执行事务时(EXEC)时,如果发生数据发生过修改,作用于改数据的事务会自动取消(DISCARD),事务EXEC后,无论成败,监听会被移除。
Redis监控功能测试:
正常执行事务:
事务正常结束,执行事务期间数据没有发生变动,这个时候可以正常执行。事务执行完成后,监控就会被移除
开启监控功能执行事务:
watch就是乐观锁,如果修改失败,获取最新的值就可