복붙노트

[REDIS] 레디 스 / Node.js를 - 2 클라이언트 (1 술집 / 하위) 쓰기와 원인이 문제

REDIS

레디 스 / Node.js를 - 2 클라이언트 (1 술집 / 하위) 쓰기와 원인이 문제

두 클라이언트를 만들려고; 하나는 다른 표준 연결입니다, 술집 / 하위입니다. 이 가능하지? 내가 test.js를 실행 한 후 GET 키를한다면, 내가 보는 모든 ') -L 값 (신장'이며, 기본적으로 :) 작업이 추상적하는 방법이 있어야합니다. 출력 :

node test.js 
Reply: OK

/Users/franklovecchio/Desktop/development/node/node_modules/redis/index.js:487
        throw new Error("Connection in pub/sub mode, only pub/sub commands may
              ^
Error: Connection in pub/sub mode, only pub/sub commands may be used
    at RedisClient.send_command (/Users/franklovecchio/Desktop/development/node/node_modules/redis/index.js:487:15)
    at RedisClient.<anonymous> (/Users/franklovecchio/Desktop/development/node/node_modules/redis/index.js:597:27)
    at Object._onTimeout (/Users/franklovecchio/Desktop/development/node/distributed-cache/client/test.js:19:12)
    at Timer.callback (timers.js:83:39)

코드:

var redis = require('redis');

var client1 = redis.createClient();
var client2 = redis.createClient();

client2.on('message', function (channel, message) {
    console.log('Received a message on channel: ' + channel);       

    client1.set('key', message, redis.print);

});

client2.subscribe('channel');

client1.set('key', 'valueBefore', redis.print);

setTimeout(
    function() {
        client2.publish('channel', 'valueAfter');
    },3000
);

해결법

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

    1.당신은 아마 CLIENT2가 특정 채널에서 메시지를 수신하기 위해 최선을 다하고 있습니다 때문에 CLIENT1에서 메시지를 게시해야합니다. 이 문제에 대한 몇 가지 단어는 node_redis 추가 정보에 기록됩니다

    당신은 아마 CLIENT2가 특정 채널에서 메시지를 수신하기 위해 최선을 다하고 있습니다 때문에 CLIENT1에서 메시지를 게시해야합니다. 이 문제에 대한 몇 가지 단어는 node_redis 추가 정보에 기록됩니다

  2. from https://stackoverflow.com/questions/7330496/redis-node-js-2-clients-1-pub-sub-causing-issues-with-writes by cc-by-sa and MIT license