(九)redis之pubsub、transactions

本文深入探讨Redis的发布订阅(pub/sub)机制,包括轻量级设计、支持的命令及应用场景;同时解析Redis的事务(transactions)功能,涵盖watch、multi、exec等命令的使用,及其在实际操作中的常见错误处理。

一、pubsub

简介

redis的pub/sub设计的很轻量级,做到了基本的发布和订阅,不支持持久化等企业级特性。

命令

  • SUBSCRIBE   ,订阅一个或多个channel,接收channel新增的消息。 
  • PSUBSCRIBE , 订阅pattern匹配的channel。pattern支持 *代表一个或多个字符,?代表一个字符。
  • UNSUBSCRIBE ,取消订阅
  • PUNSUBSCRIBE ,取消订阅pattern,同样支持*和?
  • PUBLISH , 在channel中发布消息 message
  • PUBSUB  ,PUBSUB提供对订阅的总览,subcommand有几种,,  pubsub channels [pattern], 查看活跃频道(至少有一个订阅者),,pubsub numsub [channel1 channel2 ...],查看指定频道的订阅数,,

二、transactions

简介

redis提供部分事务支持,,redis中封装一系列操作,一起执行,要么一起成功,要么一起失败,,在事务执行时,不会被其它客户端的操作打断

命令

  • watch ,watch一个或多个key,事务执行中若key值被改变时,事务会失败。
  • unwatch , 取消对所有key的watch
  • multi ,标志一个事务的开始
  • exec  ,执行multi后加入执行队列的所有命令
  • discard ,取消执行multi后的命令。

PS

使用事务时可能会遇上以下两种错误:

  • 事务在执行 EXEC之前,入队的命令可能会出错。比如说,命令可能会产生语法错误(参数数量错误,参数名错误,等等),或者其他更严重的错误,比如内存不足(如果服务器使用 maxmemory 设置了最大内存限制的话)。
  • 命令可能在EXEC调用之后失败。举个例子,事务中的命令可能处理了错误类型的键,比如将列表命令用在了字符串键上面,诸如此类。

redis只会对入队过程出错的事务进行全部不执行,,对exec过程中出错的命令,跳过错误的命令,继续向下执行。

入队前出错 , ,整个事务都失败了。 

执行时出错 ,执行过程中出错,执行正确的命令。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值