redis 由浅入深 之进阶(发布与订阅、事务、连接和Reids服务器)
2015-03-08 15:16
423 查看
Redis发布与订阅:
Redis 发布订阅(pub/sub)是一种消息通信模式:发送者(pub)发送消息,订阅者(sub)接收消息。
Redis 客户端可以订阅任意数量的频道。
下图展示了频道 channel1 , 以及订阅这个频道的三个客户端 —— client2 、 client5 和 client1 之间的关系:
当有新消息通过 PUBLISH 命令发送给频道 channel1 时, 这个消息就会被发送给订阅它的三个客户端:
Redis 发布与订阅相关指令:
psubscribe(pattern, 匹配通道(待会详解)):订阅一个或多个符合给定模式的通道。
pubsub(channel):查看订阅与发布系统状态
publish(channel, content):将指定信息发布到指定通道中
punsubscribe(channel,匹配通道):退订所有符合模式的指定通道
subscribe(channel):订阅指定通道
unsubscribe(channel):退订指定通道
实列代码:
重点:redis 匹配模式语法:
每个模式以 * 作为匹配符,比如 it* 匹配所有以 it 开头的频道( it.news 、 it.blog 、 it.tweets 等等)。 news.* 匹配所有以 news. 开头的频道( news.it 、 news.global.today
等等),诸如此类。
Redis 事务:
Redis 事务可以一次执行多个命令, 并且带有以下两个重要的保证:
事务是一个单独的隔离操作:事务中的所有命令都会序列化、按顺序地执行。事务在执行的过程中,不会被其他客户端发送来的命令请求所打断。
事务是一个原子操作:事务中的命令要么全部被执行,要么全部都不执行。
一个事务从开始到执行会经历以下三个阶段:
开始事务。
命令入队。
执行事务。
Redis事务相关指令:
discard:取消事务,放弃执行事务内包含的指令。
exec:执行事务中相关指令
multi:标记一个事务开始
unwatch:取消watch指令,对所有key的监视。
watch(key):用于监视一个(或多个) key ,如果在事务执行之前这个(或这些) key 被其他命令所改动,那么事务将被打断
实列代码:
Redis 连接:
Redis 连接命令主要是用于连接 redis 服务。
Redis 连接相关指令:
auth(password):用于检测给定的密码和配置文件中的密码是否相符。
echo(message):用于打印给定的字符串
ping:使用客户端向 Redis 服务器发送一个 PING ,如果服务器运作正常的话,会返回一个 PONG 。
通常用于测试与服务器的连接是否仍然生效,或者用于测量延迟值。
quit:用于关闭与当前客户端与redis服务的连接。一旦所有等待中的回复(如果有的话)顺利写入到客户端,连接就会被关闭。
select(index):用于切换到指定的数据库,数据库索引号
index 用数字值指定,以 0 作为起始索引值.
Redis 连接服务器就不做相关Demo 的演示,各位码农可以自己多多动手。
今天的内容已经讲解的比较多,还剩下Redis 服务器,我准备在下一章节中进行讲解。
Redis 发布订阅(pub/sub)是一种消息通信模式:发送者(pub)发送消息,订阅者(sub)接收消息。
Redis 客户端可以订阅任意数量的频道。
下图展示了频道 channel1 , 以及订阅这个频道的三个客户端 —— client2 、 client5 和 client1 之间的关系:
当有新消息通过 PUBLISH 命令发送给频道 channel1 时, 这个消息就会被发送给订阅它的三个客户端:
Redis 发布与订阅相关指令:
psubscribe(pattern, 匹配通道(待会详解)):订阅一个或多个符合给定模式的通道。
pubsub(channel):查看订阅与发布系统状态
publish(channel, content):将指定信息发布到指定通道中
punsubscribe(channel,匹配通道):退订所有符合模式的指定通道
subscribe(channel):订阅指定通道
unsubscribe(channel):退订指定通道
实列代码:
重点:redis 匹配模式语法:
每个模式以 * 作为匹配符,比如 it* 匹配所有以 it 开头的频道( it.news 、 it.blog 、 it.tweets 等等)。 news.* 匹配所有以 news. 开头的频道( news.it 、 news.global.today
等等),诸如此类。
Redis 事务:
Redis 事务可以一次执行多个命令, 并且带有以下两个重要的保证:
事务是一个单独的隔离操作:事务中的所有命令都会序列化、按顺序地执行。事务在执行的过程中,不会被其他客户端发送来的命令请求所打断。
事务是一个原子操作:事务中的命令要么全部被执行,要么全部都不执行。
一个事务从开始到执行会经历以下三个阶段:
开始事务。
命令入队。
执行事务。
Redis事务相关指令:
discard:取消事务,放弃执行事务内包含的指令。
exec:执行事务中相关指令
multi:标记一个事务开始
unwatch:取消watch指令,对所有key的监视。
watch(key):用于监视一个(或多个) key ,如果在事务执行之前这个(或这些) key 被其他命令所改动,那么事务将被打断
实列代码:
Redis 连接:
Redis 连接命令主要是用于连接 redis 服务。
Redis 连接相关指令:
auth(password):用于检测给定的密码和配置文件中的密码是否相符。
echo(message):用于打印给定的字符串
ping:使用客户端向 Redis 服务器发送一个 PING ,如果服务器运作正常的话,会返回一个 PONG 。
通常用于测试与服务器的连接是否仍然生效,或者用于测量延迟值。
quit:用于关闭与当前客户端与redis服务的连接。一旦所有等待中的回复(如果有的话)顺利写入到客户端,连接就会被关闭。
select(index):用于切换到指定的数据库,数据库索引号
index 用数字值指定,以 0 作为起始索引值.
Redis 连接服务器就不做相关Demo 的演示,各位码农可以自己多多动手。
今天的内容已经讲解的比较多,还剩下Redis 服务器,我准备在下一章节中进行讲解。
相关文章推荐
- Redis 发布订阅、事务、脚本、连接、HyperLogLog
- 【Redis学习】:redis特性——多数据库、服务器命令、消息订阅与发布和事务
- Linux+Redis实战教程_day02_Redis特性(数据库、服务器命令、消息订阅与发布、事务)
- redis 笔记06 发布与订阅、事务、慢查询日志、监视器
- Redis 学习(三) —— 事务、消息发布订阅
- StackExchange.Redis官方文档(六)【事件,发布订阅,服务器命令】
- 解决SQL Server发布订阅时需要有实际的服务器名称才能连接到服务器的问题
- Redis的高级应用-事务处理、持久化、发布与订阅消息、虚拟内存使用
- Redis的事务机制和订阅发布
- Redis 学习笔记(一):安装配置、发布订阅与事务
- Redis集群~StackExchange.redis连接Sentinel服务器并订阅相关事件
- redis-高级(事务,频道发布,消息订阅,持久化,主从复制,运维监控....)
- Redis学习笔记(九) 命令进阶:Pub/Sub(发布/订阅)操作
- redis 由浅入深 之 进阶(服务器)
- Redis 入门之 事务、连接和服务器
- Redis基础学习--Redis 事务(watch命令)、生存时间、排序、消息通知("发布/订阅"模式)、管道、节省空间
- (二)Redis 笔记——发布&订阅、事务、数据库操作
- redis进阶4-消息通知、订阅发布
- redis事务及锁应用、发布订阅模式
- Redis订阅和发布模式和Redis事务