Redis事务

1、事务的特性

1.1、概念:在Redis中,事务的本质是一组命令的集合,一个事务中所有的命令都会被序列化,在事务执行过程中,会按照顺序串行执行队列的命令,而且不会被其他的命令插入。
1.2、从概念中可以做出如下总结:

  1. 一次性
  2. 顺序性
  3. 排他性

1.3、Redis事务没有隔离级别(这是与关系型数据库不同的地方)

​ 批量操作在发送 EXEC 命令前被放入队列缓存,并不会被实际执行,也就不存在事务内的查询要看到事务里的更新,事务外查询不能看到。

所有命令在事务中,并没有直接执行,只有发起执行命令的时候才会执行

Redis单条命令保证原子性,但是事务不保证原子性,而且没有回滚(如果一个redis事务中有命令执行失败,那么其他命令依然会继续执行)

2、Redis事务的开启

  1. 开启事务(multi)
  2. 命令入队(redis的基本操作命令)
  3. 执行事务(exec 【一旦执行exec后,之前加的监控锁都会被取消】)
  4. discard(取消事务,放弃事务中的所有命令)
  5. watch key1 key2 … : 监视一或多个key,如果在事务执行之前,被监视的key被其他命令改动,则事务被打断 ( 类似乐观锁 )
  6. unwatch : 取消watch对所有key的监控

多数事务失败是由语法错误或者数据结构类型错误导致的,语法错误说明在命令入队前就进行检测的,而类型错误是在执行时检测的,Redis为提升性能而采用这种简单的事务,这是不同于关系型数据库的,特别要注意区分。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值