복붙노트

[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. ==============================

    1.안전하게 여러 채널에 가입하기 위해 동일한 레디 스 연결을 재사용 할 수 있지만, 다른 (비 가입 관련) 작업을 수행하기 위해 동일한 연결을 사용할 수 없습니다. 레디 스 문서 상태 :

    안전하게 여러 채널에 가입하기 위해 동일한 레디 스 연결을 재사용 할 수 있지만, 다른 (비 가입 관련) 작업을 수행하기 위해 동일한 연결을 사용할 수 없습니다. 레디 스 문서 상태 :

    나는 항상 구독 채널을 듣고 노드에서 하나의 레디 스 연결을 사용합니다.

  2. from https://stackoverflow.com/questions/19453463/how-to-use-the-redis-publish-subscribe by cc-by-sa and MIT license