- 上一篇文章中我们介绍了redis以及它的安装和基本数据类型的使用,现在我们来学习下redis的几个重要功能:订阅、事务
订阅
Redis 发布订阅(pub/sub)是一种消息通信模式:发送者(pub)发送消息,订阅者(sub)接收消息。
Redis 客户端可以订阅任意数量的频道。
客户端可以订阅某个频道,一个频道可以被多个客户端订阅
订阅频道(图片摘自runoob.com)当往频道发送信息的时候,该频道的订阅者就能收到信息
发布订阅(图片摘自runoob.com)实例
- 订阅频道(不存在的话会创建)
martain@martaindeMacBook-Pro redis % src/redis-cli -p 6380
127.0.0.1:6380> SUBSCRIBE martain # 订阅频道 martain
Reading messages... (press Ctrl-C to quit)
1) "subscribe"
2) "martain"
3) (integer) 1
- 发送消息去频道
martain@martaindeMBP redis % src/redis-cli -p 6380
127.0.0.1:6380> PUBLISH martain Hello # 往频道martain发送
(integer) 1
127.0.0.1:6380> PUBLISH martain GoodMorining
(integer) 1
127.0.0.1:6380>
- 收到频道的数据
martain@martaindeMacBook-Pro redis % src/redis-cli -p 6380
127.0.0.1:6380> SUBSCRIBE martain
Reading messages... (press Ctrl-C to quit)
1) "subscribe"
2) "martain"
3) (integer) 1
1) "message"
2) "martain"
3) "Hello"
1) "message"
2) "martain"
3) "GoodMorining"
事务
Redis 事务可以一次执行多个命令, 并且带有以下三个重要的保证:
批量操作在发送 EXEC 命令前被放入队列缓存。收到 EXEC 命令后进入事务执行,事务中任意命令执行失败,其余的命令依然被执行。在事务执行过程,其他客户端提交的命令请求不会插入到事务执行命令序列中。
一个事务从开始到执行会经历以下三个阶段:
开始事务。
命令入队。
执行事务。
实例
127.0.0.1:6380> MULTI # 开始事务
OK
127.0.0.1:6380> set front vue # 命令1
QUEUED
127.0.0.1:6380> SET backup java # 命令 2 ...
QUEUED
127.0.0.1:6380> SET database mysql
QUEUED
127.0.0.1:6380> GET front
QUEUED
127.0.0.1:6380> GET backup
QUEUED
127.0.0.1:6380> GET database
QUEUED
127.0.0.1:6380> EXEC # 执行事务
1) OK
2) OK
3) OK
4) "vue"
5) "java"
6) "mysql"
127.0.0.1:6380>
事务开始之后,就可以编写之前学的命令了,当命令编写完成之后可以使用EXEC执行
网友评论