我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Redis事务怎么用

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Redis事务怎么用

小编给大家分享一下Redis事务怎么用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

事务:
127.0.0.1:6379> MULTI
OK
127.0.0.1:6379> sadd "user:1:state" 1
QUEUED
127.0.0.1:6379> SADD "user:2:state" 2
QUEUED
127.0.0.1:6379> EXEC
1) (integer) 1
2) (integer) 1

由MULTI发起事务,后面的sadd命令来实现关注和被关注的操作,redis并没有执行这些命令,而是返回QUEUED表示这两条命令已经进入等待执行的事务队列中。
当exec之后告诉redis将等待的食物队列中的所有命令按照发送顺序依次执行。exec的返回值顺序和命令的顺序相同。


1.语法错误:
语法错误指命令不存在或者命令的参数个数不对,如下:
127.0.0.1:6379> MULTI
OK
127.0.0.1:6379> set name Mike
QUEUED
127.0.0.1:6379> errorcommand name
(error) ERR unknown command 'errorcommand'
127.0.0.1:6379> EXEC
(error) EXECABORT Transaction discarded because of previous errors.
由于存在不正确的命令,redis直接返回错误把整个事务discard了。它连语法正确的都不会执行,如下:
127.0.0.1:6379> MGET name
1) (nil)


2.运行错误:运行错误是命令执行时出现的错误,比如使用了错误命令操作数据类型。
这种错误redis会继续执行,redis无法发现错误。
127.0.0.1:6379> MULTI
OK
127.0.0.1:6379> set name hello
QUEUED
127.0.0.1:6379> SADD name 3
QUEUED
127.0.0.1:6379> SET name "abc"
QUEUED
127.0.0.1:6379> EXEC
1) OK
2) (error) WRONGTYPE Operation against a key holding the wrong kind of value
3) OK
127.0.0.1:6379> GET name
"abc"

这种错误只能依赖程序员去把握与检查错误。


WATCH命令:监控一个或多个键,一但其中某个键值被修改,之后的事务就不会执行。监控会一直持续到exec命令。
127.0.0.1:6379> SET key 1
OK
127.0.0.1:6379> WATCH key
OK
127.0.0.1:6379> SET key 2
OK
127.0.0.1:6379> MULTI
OK
127.0.0.1:6379> SET key 3
QUEUED
127.0.0.1:6379> EXEC
(nil)    // 返回nil,说明监视的ticket已经改变了,事务就取消了.
127.0.0.1:6379> GET key
"2"

发布/订阅 分别发布者和订阅者,订阅者可以订阅一个或者若干个频道,而发布者可以向指定的频道发布消息。所有订阅此频道的订阅者都会受到此消息
发布消息:
127.0.0.1:6379> PUBLISH newsChannel "good morning news report"
(integer) 0
暂时没有订阅者返回为0

订阅消息:
127.0.0.1:6379> SUBSCRIBE newsChannel
Reading messages... (press Ctrl-C to quit)
1) "subscribe"    //subscribe 表示订阅成功的反馈。第二个值是成功订阅的频道名,第三个值是当前客户端订阅的频道数量。
如果是message 这个类型回复是我们关心的,表示接收到的消息,第二个值表示产生消息的频道名称。第三个值是消息的内容。
unsubscribe 取消订阅某个频道,第二个值是对应的频道名称,第三个值是当前客户端订阅的频道数量。
2) "newsChannel"
3) (integer) 1
利用publish 再次发布消息:
127.0.0.1:6379> PUBLISH newsChannel "News 2"
(integer) 1
订阅频道:
127.0.0.1:6379> SUBSCRIBE newsChannel
Reading messages... (press Ctrl-C to quit)
1) "subscribe"
2) "newsChannel"
3) (integer) 1
^[[A1) "message"
2) "newsChannel"
3) "News 2"
可以按照正则表达式订阅多个频道:
127.0.0.1:6379> PSUBSCRIBE news*
Reading messages... (press Ctrl-C to quit)
1) "psubscribe"
2) "news*"
3) (integer) 1

PSUBSCRIBE去订阅以news开头任意字符结尾的频道.
127.0.0.1:6379> PSUBSCRIBE news*
Reading messages... (press Ctrl-C to quit)
1) "psubscribe"
2) "news*"
3) (integer) 1
1) "pmessage"
2) "news*"
3) "newsChannel"
4) "News 3"

以上是“Redis事务怎么用”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注亿速云行业资讯频道!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Redis事务怎么用

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

redis事务是怎么处理的

redis 事务是一种将多个命令打包在一起的机制,要么全部执行,要么全部回滚,从而确保数据的完整性和一致性。开启事务通过 multi 命令,提交事务通过 exec 命令。事务队列化执行,并具有原子性,若任何命令执行失败,则整个事务回滚。需要
redis事务是怎么处理的
2024-05-21

Redis怎么实现事务操作

Redis 实现事务操作的方式是使用 MULTI 和 EXEC 命令进行事务的开启和执行。使用 MULTI 命令开启事务,表示后续的命令将被打包成事务进行执行。在 MULTI 命令之后,可以依次执行多个 Redis 命令,这些命令将被暂时
Redis怎么实现事务操作
2024-05-07

redis事务

简介可以一次执行多个命令,本质是一组命令的集合.一个事务中的所有命令都会序列化,按顺序的串行化执行而不会被其他命令插入,不许加塞作用在一个队列中,一次性,顺序性,排他性的执行一系列命令开启事务示例remoteSelf:1>multi"OK"remoteSelf
redis事务
2015-05-18
2023-09-08

java中redis事务怎么配置的

本文介绍了Redis事务配置的详细步骤,包括开启事务、执行命令、提交或回滚事务、监视键、失败重试等。此外,还提供了Redis事务配置的选项、示例代码和性能考虑因素,帮助开发人员配置和管理Redis事务。
java中redis事务怎么配置的
2024-04-02

redis 实战-redis 事务

redis 实战-redis 事务  1.描述    redis 事务单独的隔离操作:事务中的所有命令都会序列化、按顺序执行。事务在执行过程中,不会被其他客户端发送过来的命令请求所打断。   redis 事务没有隔离级别的概念:队列中的命令没有提交之前都不会实
redis 实战-redis 事务
2021-02-21

java事务回滚redis怎么处理

Java事务回滚时,Redis缓存数据处理至关重要。有乐观和悲观两种回滚策略,选择取决于应用程序需求。乐观回滚避免数据库交互,提高性能,而悲观回滚确保数据一致性。实施回滚时,使用Redis事务性特性、设置过期时间、利用回调函数和异步处理。监听回滚事件、使用非阻塞客户端和单元测试也有助于提升处理可靠性。
java事务回滚redis怎么处理
2024-04-02

Redis中的发布订阅和事务怎么使用

本篇内容主要讲解“Redis中的发布订阅和事务怎么使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Redis中的发布订阅和事务怎么使用”吧!发布订阅redis的发布订阅系统有点类似于我们生活中
2023-06-19

Jedis使用Redis事务的方法是什么

本篇内容主要讲解“Jedis使用Redis事务的方法是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Jedis使用Redis事务的方法是什么”吧!什么是Jedis?什么是Jedis 是Red
2023-07-05

PHP使用Redis的事务命令

1.redis事务命令:命令作用返回值watch监视一个或多个key总是OKmulti声明事务开始,后续命令将排队按顺序等待exec执行总是OKexec顺序执行multi之后的命令,如果multi之前使用watch命令监视的键的值发生变化,执行将失败执行成功时
PHP使用Redis的事务命令
2018-10-22

编程热搜

目录