[REDIS] 레디 스 게시 사용하는 방법 / 가입
REDIS레디 스 게시 사용하는 방법 / 가입
현재 내가 Node.js를를 사용하고 응용 프로그램을 구축 할 레디 스하고, 내가 레디 스를 사용하는 이유는 발행 / 구독 기능이다. 응용 프로그램은 사용자가 사용자로 또는 방에서 올 때 관리자에게 통보하는 것입니다.
function publishMsg( channel , mssage){
redisClient.publish(channel,JSON.stringify());
}
publishMsg('room/1/user/b',{'room':1,'user':'b'});
publishMsg('room/1/user/c',{'room':1,'user':'c'});
publishMsg('room/2/user/b',{'room':2,'user':'b'});
publishMsg('room/2/user/c',{'room':2,'user':'c'});
function subscribe(pattern){
redisClient.psubscribe(pattern);
redisClient.on('pmessage', function(pattern, channel, message){
console.log('on publish / subscribe ', pattern+" "+channel+" "+message+" "+ JSON.parse( message) );
});
}
내가 가입하고 분리하다 이벤트를 수신하기 원하기 때문에, 제 질문은 내가 좋아하는,이 두 가지 이벤트를 듣고 두 redisclient를 사용한다
redisClient1.psubscribe('room/*/user/*/join');
redisClient2.psubscribe('room/*/user/*/disjoin');
아니면 그냥 듣고 콜백 내부 로직을 분리 한 레디 스 클라이언트를 사용하여
redisClient2.psubscribe('room/*/user/*');
나는이 두 가지 방법이 가능합니다 알고,하지만 난 어떻게 현실의 사람들에있는 상태에서이를 사용 몰라?
해결법
-
==============================
1.안전하게 여러 채널에 가입하기 위해 동일한 레디 스 연결을 재사용 할 수 있지만, 다른 (비 가입 관련) 작업을 수행하기 위해 동일한 연결을 사용할 수 없습니다. 레디 스 문서 상태 :
안전하게 여러 채널에 가입하기 위해 동일한 레디 스 연결을 재사용 할 수 있지만, 다른 (비 가입 관련) 작업을 수행하기 위해 동일한 연결을 사용할 수 없습니다. 레디 스 문서 상태 :
나는 항상 구독 채널을 듣고 노드에서 하나의 레디 스 연결을 사용합니다.
from https://stackoverflow.com/questions/19453463/how-to-use-the-redis-publish-subscribe by cc-by-sa and MIT license
'REDIS' 카테고리의 다른 글
[REDIS] 레디 스에서 유니 코드를 저장하지만, 가져 오기 오류 (0) | 2020.01.20 |
---|---|
[REDIS] 의 이유가 무엇 일 수 레일 ActionCable에서 "식별자 구독을 찾을 수 없습니다"? (0) | 2020.01.19 |
[REDIS] 한 레디 스 루아 스크립트를 사용하여 여러 개의 DB를 사용? (0) | 2020.01.19 |
[REDIS] 레디 스에서 HashMap의 값 세트 만료? (0) | 2020.01.19 |
[REDIS] StackExchange.Redis를 사용 RedisTimeoutException의 버스트 (0) | 2020.01.19 |