当前位置: 移动技术网 > IT编程>数据库>Redis > redis之事务学习

redis之事务学习

2020年10月08日  | 移动技术网IT编程  | 我要评论
目录文章目录目录Transaction悲观锁乐观锁消息订阅发布(了解)Transaction一个队列中 一次性,顺序性,排他性地执行一系列命令MULTI //开始事务127.0.0.1:6379> MULTIOK127.0.0.1:6379> set balance 100QUEUED127.0.0.1:6379> set debt 0QUEUED127.0.0.1:6379> 将多个命令入队到事务中,接下来这些命令并不会立即执行,而是放到等待执行的事

目录

Transaction

一个队列中 一次性,顺序性,排他性地执行一系列命令

MULTI   //开始事务
127.0.0.1:6379> MULTI
OK
127.0.0.1:6379> set balance 100
QUEUED
127.0.0.1:6379> set debt 0
QUEUED
127.0.0.1:6379> 

将多个命令入队到事务中,接下来这些命令并不会立即执行,而是放到等待执行的事务队列中

EXEC    //提交事务
DISCARD //取消事务

单独的隔离操作:事务中的所有命令都会序列化,按顺序地执行,事务在执行过程中不会被其他客户端发来的命令所打断

没有隔离级别的概念:队列中的命令在没有提交之前都不会被实际地执行,因为在事务没有提交之前任何的指令都不会实际地执行

不能保证原子性:redis中同一事务中如果有一条命令执行失败则其后的命令仍然会被执行,没有回滚


redis对事务是部分支持的,如果在一次事务中如果一条命令在加入队列之前发生错误,就不会加入队列中,那么其他正常加入队列的命令都会执行失败。而在一次事务中,如果一条命令在加入队列之后执行失败,则除了该命令其他加入队列后正常执行的命令都会执行成功

watch   //监视一个或多个key,如果在事务提交之前这个或这些key被其他命令所改动,那么事务将被打断并返回nil
unwatch //取消对所有key的监视

一旦执行EXEC命令,之前所加的监控锁都会被取消掉

悲观锁

乐观锁

消息订阅发布(了解)

进程间的一种通信模式

发送者(pub)发送消息 订阅者(sub)接受消息

先订阅后发布才能收到消息

SUBSCRIBE a b c//订阅多个
PUBLISH a hello//发布消息
//订阅多个  通配符
PSUBSCRIBE a*
//发布消息
PUBLISH a1 hello
PUBLISH a2 HelloRedis

本文地址:https://blog.csdn.net/weixin_45751628/article/details/108962553

如您对本文有疑问或者有任何想说的,请点击进行留言回复,万千网友为您解惑!

相关文章:

验证码:
移动技术网