Redis 연구 노트 게시 및 구독

WBOY
풀어 주다: 2022-06-17 13:56:28
앞으로
1886명이 탐색했습니다.

이 글에서는 게시 및 구독과 관련된 문제를 주로 소개하는Redis에 대한 관련 지식을 제공합니다. Redis 게시 및 구독(pub/sub)은 메시지 통신 모드입니다. 발신자(pub)는 메시지를 보내고 구독자(sub)는 ) 메시지를 받아 모든 분들께 도움이 되기를 바랍니다.

Redis 연구 노트 게시 및 구독

추천 학습:Redis 비디오 튜토리얼

Redis 게시 및 구독(pub/sub)은메시지 통신 모델입니다. 발신자(pub)가 메시지를 보내고 구독자(sub)가 메시지를 받습니다. .

Redis 클라이언트는 원하는 수의 채널을 구독할 수 있습니다.

구독/게시 메시지 그래프:

첫 번째 개체: 메시지 보낸 사람. 두 번째 개체: 채널. 세 번째 개체: 메시지 구독자.

Redis 연구 노트 게시 및 구독

다음 그림은 채널1과 이 채널을 구독하는 세 클라이언트(클라이언트2, 클라이언트5, 클라이언트1) 사이의 관계를 보여줍니다.

Redis 연구 노트 게시 및 구독

PUBLISH 명령을 통해 채널 채널1에 새 메시지가 전송되면 이 메시지는 이를 구독하는 세 클라이언트에게 전송됩니다.

Redis 연구 노트 게시 및 구독

명령 설명
Publish 채널 메시지 명령 은 지정된 채널에 정보를 보냅니다.
SUBSCRIBE 채널 [채널 …] 특정 채널의 정보를 구독하세요.
UNSUBSCRIBE 채널 [채널 …] 은 특정 채널의 구독 취소를 의미합니다.
[PUNSUBSCRIBE 패턴 [패턴 …]] 해당 패턴의 모든 채널에서 구독을 취소합니다.
[PUBSUB 인수 [인수…] 구독 및 게시 시스템 상태를 확인하세요.
PSUBSCRIBE 패턴 [패턴 …] 주어진 패턴과 일치하는 하나 이상의 채널을 구독하세요.

Test

Subscriber:

127.0.0.1:6379> subscribe mianbao # 订阅频道 mianbao Reading messages... (press Ctrl-C to quit) 1) "subscribe" 2) "mianbao" 3) (integer) 1 # 等待读取推送的消息 1) "message" # 消息 2) "mianbao" # 频道 3) "hello" # 消息内容 1) "message" 2) "mianbao" 3) "hello redis"
로그인 후 복사

Sender:

127.0.0.1:6379> publish mianbao "hello" # 发送消息到频道 (integer) 1 127.0.0.1:6379> publish mianbao "hello redis" (integer) 1
로그인 후 복사

Principle:

Redis는 C로 구현되었습니다. Redis 소스 코드의 pubsub.c 파일을 분석하면 게시 및 구독을 이해할 수 있습니다. 기본 구현은 Redis에 대한 이해를 심화하는 데 사용됩니다.

Redis는 PUBLISH, SUBSCRIBE 및 PSUBSCRIBE와 같은 명령을 통해 게시 및 구독 기능을 구현합니다.

SUBSCRIBE 명령을 통해 채널을 구독하면 사전은 redis-server에 유지되며, 사전의 키는 각 채널(채널)이고, 사전의 값은 연결된 목록에 모든 클라이언트가 저장됩니다. 이 채널을 구독하는 사람입니다. SUBSCRIBE 명령의 핵심은 지정된 채널의 구독 목록에 클라이언트를 추가하는 것입니다.

PUBLISH 명령을 통해 구독자에게 메시지를 보냅니다. redis-server는 지정된 채널을 키로 사용하고, 유지 관리하는 채널 사전에서 이 채널을 구독하는 모든 클라이언트의 연결 목록을 검색하고, 연결 목록을 순회합니다. 모든 구독자에게 메시지를 게시합니다.

Pub/Sub는 문자 그대로 게시(Publish) 및 구독(Subscribe)을 의미합니다. Redis에서는 특정 키 값에 대해 메시지 게시 및 메시지 구독을 설정할 수 있습니다. 그러면 해당 메시지가 수신됩니다. 이 기능의 가장 확실한 용도는 일반 인스턴트 채팅, 그룹 채팅 및 기타 기능과 같은 실시간 메시징 시스템으로 사용되는 것입니다.


약간 더 복잡한 시나리오의 경우 메시지 미들웨어를 사용합니다: RabbitMQ, RocketMQ, ActiveMQ, kafka

권장 학습:Redis 비디오 튜토리얼

위 내용은 Redis 연구 노트 게시 및 구독의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:csdn.net
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!