복붙노트

[REDIS] 그들은 실시간 추가로 어떻게 레디 스의 개체를 팝업 할 수 있습니까?

REDIS

그들은 실시간 추가로 어떻게 레디 스의 개체를 팝업 할 수 있습니까?

나는 팝업 새로운 것을위한 레디 스 서버를 확인하는 것으로 실행하는 Node.js를 과정을 얻을합니다.

또 다른 과정은 산발적으로 추진을하고있을 것이며, 노드 프로세스는이 들어오는대로 팝업을 시도한다. 노드 프로세스가 실행 유지됩니다.

좋은 방향에 누군가 포인트 나를 수 있습니까?

나는 그런 이벤트를 수신하는 방법을 알아 내려고 노력하고있어. 물론, 내가 한 번 팝업 수 있지만, 내가 어떻게 노드 프로세스 레디 스 서버에 대한뿐만 아니라 대기를 유지하기 위해 어떻게해야합니까?

해결법

  1. ==============================

    1.http://redis.io/commands/brpop : 당신은 차단 팝업을 사용하는 것이 좋습니다

    http://redis.io/commands/brpop : 당신은 차단 팝업을 사용하는 것이 좋습니다

    function waitForPush () {
      client.brpop(['list','otherlist',0], function (listName, item) {
        // do stuff
        waitForPush();
      });
    }
    
  2. ==============================

    2.이 술집 / 서브에 대한 좋은 유스 케이스처럼 보인다 : http://redis.io/topics/pubsub

    이 술집 / 서브에 대한 좋은 유스 케이스처럼 보인다 : http://redis.io/topics/pubsub

    레디 스에 산발적으로 밀어도 채널에 뭔가를 밀어마다 게시 할 수 있습니다 당신의 Node.js를 처리. 이 같이 :

    var pushClient = redis.createClient();
    //push something onto Redis
    pushClient.publish("pubsub-channel", "Just pushed something onto Redis");
    

    그런 다음 다른 프로세스가 해당 채널을 구독합니다. 메시지 이벤트가 발생 될 때마다, 당신은 단지 밀렸다 어떤 오프 팝업 :

    var client = redis.createClient();
    client.subscribe("pubsub-channel");
    client.on("message", function(channel, message){
    //pop off new item
    });
    
  3. ==============================

    3.어떻게 process.nextTick와 재귀 함수의 수정 된 버전에 대한 (...)

    어떻게 process.nextTick와 재귀 함수의 수정 된 버전에 대한 (...)

    function waitForPush () {
      client.brpop(['list','otherlist',0], function (listName, item) {
        // do stuff
        process.nextTick(waitForPush);
      });
    }
    
  4. from https://stackoverflow.com/questions/15602956/how-can-i-pop-objects-from-redis-as-they-are-added-realtime by cc-by-sa and MIT license