发布订阅与事务
来源:Node.js
发布订阅
Redis也具备发布订阅模式
1 | PUBLISH news "omg" # 将消息"omg"发送到news频道 |
事务
Redis也支持事务
- MULTI:开启一个事务,执行后,Redis会将接下来的命令都添加到事务队列中,而不是立即执行
- EXEC:执行事务中的所有命令。执行时,按事务队列中的顺序执行所有的命令,执行结果以数组的形式返回给客户端
- WATCH:对一个或多个键进行监视,如果在事务执行之前,被监视的键被修改了,事务将会被中断,不会执行
- DISCARD:取消事务。执行时,所有在事务队列中的命令都会被清空,事务被取消
使用事务的基本流程:
- 使用MULTI命令开启一个事务
- 将需要执行的命令添加到事务队列中
- 如果需要,使用WATCH命令监视键
- 执行EXEC命令执行事务
- 根据EXEC的返回结果判断事务执行是否成功
事务中的命令不会立即执行,而是在执行EXEC命令时才会被执行,这意味着事务期间的命令并不会阻塞其他客户端的操作,也不会中断其他客户端对键的读写操作
Redis事务不支持回滚操作,如果在事务执行期间发生错误,事务会继续执行,而不会回滚已执行的命令。因此,在使用Redis事务时,需要保证事务中的命令是幂等的,即多次执行命令的结果和一次执行的结果相同
1 | MULTI # 开启事务 |
评论