发布订阅简介

Redis 发布订阅(pub/sub)是一种消息通信模式:发送者(pub)发送消息,订阅者(sub)接收消息,消息之间通过channel传递。

## 准备工作
两台安装了redis的机器(虚拟机),一号机器上运行一个redis服务端和一个发布者客户端,二号机器上运行多个订阅者客户端

配置文件

在一号服务器的 /opt/redis_conf/ 目录下新建一个redis-6379.conf配置文件,写入如下内容:

# 端口
port 6379 # 是否后台运行
daemonize yes # pid文件的存放路径
pidfile /data/6379/redis.pid # 日志级别
loglevel notice # 日志文件路径
logfile "/data/6379/redis.log" # 数据保存路径
dir /data/6379 # 是否开启保护模式,保护模式开启后远程客户端无法连接此服务端
protected-mode no # 密码
requirepass 123

将二号服务器的redis配置文件的```bind 127.0.0.1```改为:
```
bind 192.168.1.17 # 一号服务器的ip地址


<br>
## 在一号服务器上启动redis-server ```linux
redis-server /opt/redis_conf/redis-6379.conf

确认redis-server是否启动

[root@localhost redis_conf]# ps -ef | grep redis
root 31308 1 0 17:07 ? 00:00:00 redis-server *:6379 # 说明成功启动了
root 31316 10855 0 17:07 pts/2 00:00:00 grep --color=auto redis

一号服务器上登录,新建一个发布者
```
[root@localhost redis_conf]# redis-cli
127.0.0.1:6379> PUBLISH music 'shilian'
(error) NOAUTH Authentication required.


出现上述提示说明需要输入密码

[root@localhost redis_conf]# redis-cli

127.0.0.1:6379> PUBLISH music 'shilian'

(error) NOAUTH Authentication required.

127.0.0.1:6379>

127.0.0.1:6379>

127.0.0.1:6379> AUTH 123

OK

127.0.0.1:6379> PUBLISH music 'shilian'

(integer) 0


发布成功 <br>
在二号机器上用redis客户端远程连接一号机器的redis服务端,订阅music频道
远程连接的格式为

redis-cli -h ip地址 -p 端口号

端口号为6379时可以省略不写

<br>

[root@localhost ~]# redis-cli -h 192.168.1.17 -p 6379

192.168.1.17:6379> auth 123

OK

192.168.1.17:6379> SUBSCRIBE music

Reading messages... (press Ctrl-C to quit)

  1. "subscribe"
  2. "music"
  3. (integer) 1


<br>
发布一条消息

127.0.0.1:6379> PUBLISH music 'yasugongshang'

(integer) 2


<br>
查看订阅者接收情况 第一个订阅者

[root@localhost ~]# redis-cli -h 192.168.1.17 -p 6379

192.168.1.17:6379> auth 123

OK

192.168.1.17:6379> SUBSCRIBE music

Reading messages... (press Ctrl-C to quit)

  1. "subscribe"
  2. "music"
  3. (integer) 1
  4. "message"
  5. "music"
  6. "yasugongshang"


第二个订阅者

[root@localhost ~]# redis-cli -h 192.168.1.17 -p 6379

192.168.1.17:6379> AUTH 123

OK

192.168.1.17:6379> SUBSCRIBE music

Reading messages... (press Ctrl-C to quit)

  1. "subscribe"
  2. "music"
  3. (integer) 1
  4. "message"
  5. "music"
  6. "yasugongshang"

redis发布/订阅的更多相关文章

  1. RedisRepository封装—Redis发布订阅以及StackExchange.Redis中的使用

    本文版权归博客园和作者本人吴双共同所有,转载请注明本Redis系列分享地址.http://www.cnblogs.com/tdws/tag/NoSql/ Redis Pub/Sub模式 基本介绍 Re ...

  2. python中使用redis发布订阅者模型

    redis发布订阅者模型: Redis提供了发布订阅功能,可以用于消息的传输,Redis的发布订阅机制包括三个部分,发布者,订阅者和Channel.发布者和订阅者都是Redis客户端,Channel则 ...

  3. MariaDB主从复制,redis发布订阅,持久化,以及主从同步

      一. MariaDB主从复制 mysql基本操作 1 连接数据库 mysql -u root -p -h 127.0.0.1 mysql -u root -p -h 192.168.12.60 2 ...

  4. redis发布订阅、事务、脚本

    Redis 发布订阅 Redis 发布订阅(pub/sub)是一种消息通信模式:发送者(pub)发送消息,订阅者(sub)接收消息. Redis 客户端可以订阅任意数量的频道. 下图展示了频道 cha ...

  5. 利用Redis发布订阅完成tomcat集群下的消息通知

    以下为个人想法,如果有说的不对的地方请各位大佬见谅! 这是博主的第一篇博客,可能排版以及一些描述有不合理的地方还请勿喷,希望大家尽可能的多给我这样的新人一些鼓励让我能在写博客的道路上走下去. 进入正题 ...

  6. Redis发布订阅机制

    1. 什么是Redis Redis是一个开源的内存数据库,它以键值对的形式存储数据.由于数据存储在内存中,因此Redis的速度很快,但是每次重启Redis服务时,其中的数据也会丢失,因此,Redis也 ...

  7. Linux 安装redis,redis发布订阅,持久化

    安装redis 1.安装redis的方式 -yum (删除这个yum安装的redis,我们只用源码编译安装的) -rpm -源码编译 2.删除原本的redis yum remove redis -y ...

  8. Redis发布订阅和事物笔记

    Redis 发布订阅 Redis 发布订阅(pub/sub)是一种消息通信模式:发送者(pub)发送消息,订阅者(sub)接收消息. Redis 客户端可以订阅任意数量的频道. 下图展示了频道 cha ...

  9. Redis笔记(五):Redis发布订阅

    Redis 发布订阅 Redis 发布订阅(pub/sub)是一种消息通信模式:发送者(pub)发送消息,订阅者(sub)接收消息. Redis 客户端可以订阅任意数量的频道. 下图展示了频道 cha ...

随机推荐

  1. 重写override

    不可重写私有方法. 不可重写非静态的方法,虽然编译器不会报错,但是得不到预期的结果. 可以通过重写的形式对父类的功能进行重新定义,比如:对功能进行修改或者进行升级时. class BaseAction ...

  2. Zookeeper集群为什么要是单数

    (原) 在zookeeper集群中,会有三种角色,leader. follower. observer分别对应着总统.议员.观察者. 半数以上投票通过:可以这样理解.客户端的增删改操作无论访问到了哪台 ...

  3. Linux运维基础

    一.服务器硬件 二.Linux的发展史 三.Linux的系统安装和配置 四.Xshell的安装和优化 五.远程连接排错 六.Linux命令初识 七.Linux系统初识与优化 八.Linux目录结构 九 ...

  4. Linux实战教学笔记49:Zabbix监控平台3.2.4(一)搭建部署与概述

    https://www.cnblogs.com/chensiqiqi/p/9162986.html 一,Zabbix架构 zabbix 是一个基于 WEB 界面的提供分布式系统监视以及网络监视功能的企 ...

  5. 多节点,多线程下发订单,使用zookeeper分布式锁机制保证订单正确接入oms系统

    假设订单下发, 采用单机每分钟从订单OrderEntry接口表中抓100单, 接入订单oms系统中. 由于双十一期间, 订单量激增, 导致订单单机每分钟100单造成, 订单积压. 所以采用多节点多线程 ...

  6. 2018-2019-2-20175332-实验二《Java面向对象程序设计》实验报告

    一.单元测试 实验要求:参考 http://www.cnblogs.com/rocedu/p/6371315.html#SECUNITTEST 完成单元测试的学习 提交最后三个JUnit测试用例(正常 ...

  7. TabBar用到bottomNavigationBar

    import 'package:flutter/material.dart';import 'homepage.dart';import 'lastpage.dart';import 'secondp ...

  8. Asp.Net WebApi 使用OWIN架构后,出现 “没有 OWIN 身份验证管理器与此请求相关联(No OWIN authentication manager is associated with the request)” 异常的解决办法

    在Asp.Net WebApi 项目中使用OWIN模块之后,如果没有在OWIN的Startup类中配置认证方式,调用WebApi的相关Controller和Action就会出现如下异常: 出现错误. ...

  9. SpringCloud(1)服务注册与发现Eureka

    1.创建1个空白的工程 2.创建2个model工程 一个module(即SpringBoot)工程作为服务注册中心,即Eureka Server,另一个作为Eureka Client. Eureka ...

  10. 动态链接库-Win32 DLL的说明

    在实际编程时,我们可以把完成某种功能的函数放在一个动态链接库中,然后给其他程序调用. WinAPI中所有的函数都包含在3个最重要的DLL中. Kernel32.dll 它包含那些用于管理内存.进程和线 ...