发布订阅简介

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. 轻量级卷积神经网络——MobileNet

    谷歌论文题目: MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications 其他参考: CNN ...

  2. C++ 既有约定

    Pascal 拼写法: 函数名MultiplyNumbers(),每个单词的首字母都大写 驼峰拼写法: 变量名 firstNumber,第一个单词的首字母采用小写 匈牙利表示法: iFirstNumb ...

  3. Java MultipartFile 使用记录

    private void file(String path,MultipartFile file){ String separator = "/"; String originFi ...

  4. Spring Security(三十一):9.6 Localization(本地化)

    Spring Security supports localization of exception messages that end users are likely to see. If you ...

  5. 初学Kafka工作原理流程介绍

    Apache kafka 工作原理介绍 消息队列技术是分布式应用间交换信息的一种技术.消息队列可驻留在内存或磁盘上, 队列存储消息直到它们被应用程序读走.通过消息队列,应用程序可独立地执行--它们不需 ...

  6. leetcode 203. Remove Linked List Elements 、83. Remove Duplicates from Sorted List 、82. Remove Duplicates from Sorted List II(剑指offer57 删除链表中重复的结点)

    203题是在链表中删除一个固定的值,83题是在链表中删除重复的数值,但要保留一个:82也是删除重复的数值,但重复的都删除,不保留. 比如[1.2.2.3],83题要求的结果是[1.2.3],82题要求 ...

  7. leetcode 263. Ugly Number 、264. Ugly Number II 、313. Super Ugly Number 、204. Count Primes

    263. Ugly Number 注意:1.小于等于0都不属于丑数 2.while循环的判断不是num >= 0, 而是能被2 .3.5整除,即能被整除才去除这些数 class Solution ...

  8. jar包的MANIFEST.MF文件

    打包可执行jar包时,MANIFEST.MF总是个让人头疼的东西,经常出现这种那种问题. 一个例子: ================================================= ...

  9. 在Asp.Net Core中使用DI的方式使用Hangfire构建后台执行脚本

    最近项目中需要用到后台Job,原有在Windows中我们会使用命令行程序结合计划任务或者直接生成Windows Service,现在.Net Core跨平台了,虽然Linux下也有计划任务,但跟原有方 ...

  10. Codeforces Round #546 (Div. 2)-D - Nastya Is Buying Lunch

    这道题,神仙贪心题... 题意就是我给出数的顺序,并给出多个交换,每个只能用于相邻交换,问最后一个元素,最多能往前交换多少步. 我们考虑这样一个问题,如果一个这数和a[n]发生交换,那么这个数作为后面 ...