redis学习教程三《发送订阅、事务、连接》

 一:发送订阅
      Redis发布订阅(pub/sub)是一种消息通信模式:发送者(pub)发送消息,订阅者(sub)接收消息。Redis 发布订阅(pub/sub)实现了消
息系统,发送者(在redis术语中称为发布者)在接收者(订阅者)接收消息时发送消息。传送消息的链路称为信道。

示例

以下示例说明了发布用户概念的工作原理。 在以下示例中,一个客户端订阅名为“redisChat”的信道。

1 redis 127.0.0.1:6379> SUBSCRIBE redisChat
2 Reading messages... (press Ctrl-C to quit)
3 1) "subscribe"
4 2) "redisChat"
5 3) (integer) 1
6 //Shell
 

现在,两个客户端在名称为“redisChat”的相同信道上发布消息,并且上述订阅的客户端接收消息。

redis 127.0.0.1:6379> PUBLISH redisChat "Redis is a great caching technique"
(integer) 1
redis 127.0.0.1:6379> PUBLISH redisChat "Learn redis by yiibai"
(integer) 1
1) "message"
2) "redisChat"
3) "Redis is a great caching technique"
1) "message"
2) "redisChat"
3) "Learn redis by yiibai"
//Shell
 

Redis发布订阅命令

下表列出了与Redis发布订阅相关的一些基本命令。

序号 命令 说明
1 PSUBSCRIBE pattern [pattern …] 订阅一个或多个符合给定模式的频道。
2 PUBSUB subcommand [argument [argument …]] 查看订阅与发布系统状态。
3 PUBLISH channel message 将信息发送到指定的频道。
4 PUNSUBSCRIBE [pattern [pattern …]] 退订所有给定模式的频道。
5 SUBSCRIBE channel [channel …] 订阅给定的一个或多个频道的信息。
6 UNSUBSCRIBE [channel [channel …]] 退订给定的频道。

二:事务
       Redis事务允许在单个步骤中执行一组命令。以下是事务的两个属性:

  • 事务中的所有命令作为单个隔离操作并按顺序执行。不可以在执行Redis事务的中间向另一个客户端发出的请求。
  • Redis事务也是原子的。原子意味着要么处理所有命令,要么都不处理。

语法示例

Redis事务由命令MULTI命令启动,然后需要传递一个应该在事务中执行的命令列表,然后整个事务由EXEC命令执行。

示例

以下示例说明了如何启动和执行Redis事务。

 1 redis 127.0.0.1:6379> MULTI
2
3 OK
4 redis 127.0.0.1:6379> SET mykey "redis"
5 QUEUED
6 redis 127.0.0.1:6379> GET mykey
7 QUEUED
8 redis 127.0.0.1:6379> INCR visitors
9 QUEUED
10 redis 127.0.0.1:6379> EXEC
11 1) OK
12 2) "redis"
13 3) (integer) 1
14 //Shell
 

Redis事务命令

下表列出了与Redis事务相关的一些基本命令。

序号 命令 说明
1 DISCARD 丢弃在MULTI之后发出的所有命令
2 EXEC 执行MULTI后发出的所有命令
3 MULTI 标记事务块的开始
4 UNWATCH 取消 WATCH 命令对所有 key 的监视。
5 WATCH key [key …] 监视给定的键以确定MULTI / EXEC块的执行

三:Redis连接

Redis中的连接命令基本上是用于管理与Redis服务器的客户端连接。

示例

以下示例说明客户端如何向Redis服务器验证自身,并检查服务器是否正在运行。

1 redis 127.0.0.1:6379> AUTH "password"
2 OK
3 redis 127.0.0.1:6379> PING
4 PONG
5 //Shell
 

Redis连接命令

下表列出了与Redis连接相关的一些基本命令。

序号 命令 说明
1 AUTH password 使用给定的密码验证服务器
2 ECHO message 打印给定的字符串信息
3 PING 检查服务器是否正在运行
4 QUIT 关闭当前连接
5 SELECT index 更改当前连接的所选数据库

最新文章

  1. 大叔也说并行和串行`性能提升N倍(N由操作系统位数和cpu核数决定)
  2. 高效Web开发的10个jQuery代码片段
  3. Android根据文件路径加载指定文件
  4. 【笔记】select2的使用
  5. HDOJ-三部曲一(搜索、数学)-1008-Prime Path
  6. iOS开发-网易滚动导航栏
  7. 无锁编程(四) - CAS与ABA问题
  8. erl0008 - unicode 和 utf-8之间的关系
  9. MyBatis中主要类的生命周期和应用范围
  10. extjs6.0点击grid一行数据显示在一端的form中
  11. 解决IE下Ajax请求无效
  12. java打包项目将配置文件放在包外面(后续还会有补充)
  13. vue(4)—— vue的过滤器,监听属性,生命周期函数,获取DOM元素
  14. Cocoapods安装 2018-11-01更新
  15. zabbix监控实战<2>----zabbix-server的安装与部署
  16. mysql缓存分析
  17. 使用python脚本实现统计日志文件中的ip访问次数
  18. 在Java中String类为什么要设计成final?String真的不可变吗?其他基本类型的包装类也是不可变的吗?
  19. Mavan学习之pom聚合
  20. Date时间格式比较大小

热门文章

  1. leetcode网站中找到的关于trie树的JAVA版本介绍
  2. mysql事务_事务隔离级别详解
  3. 加薪攻略之UI组件库实践—storybook
  4. java反射-Method中的invoke方法的用法-以及函数式接口和lambda表达式
  5. Java 中 Executors.newSingleThreadExecutor() 与Executors.newFixedThreadPool(1)有什么区别
  6. oracle 11.2.0.1.0 升级 11.2.0.4.0 并 patch 到11.2.0.4.7
  7. Spring Cloud Gateway 跨域 CORS 配置方式实现
  8. 【Java基础】Java9 新特性
  9. 【剑指 Offer】07.重建二叉树
  10. 【Git】简易使用教程