欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

redis之事务学习

程序员文章站 2022-12-05 10:03:40
目录文章目录目录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

相关标签: Redis