Redis
 sql >> Base de Dados >  >> NoSQL >> Redis

Conexão Redis via socket no Node.js


Atualização: Minha resposta abaixo não está realmente correta. Acontece que a solução no problema que mencionei abaixo ainda funciona. É mais uma coincidência, IMO, mas você pode fazer algo assim, e deve funcionar:
var redis = require('redis'),
    client = redis.createClient('/tmp/redis.sock');

Como você vê no snippet de código abaixo, isso será passado para net.createConnection que se conectará ao soquete unix /tmp/redis.sock .

Resposta antiga:

Há um problema encerrado sobre este node_redis/issues/204. Parece que a API node.js net.createConnection subjacente mudou desde então. Parece que seria uma correção bem pequena no exports.createClient do node_redis função:
exports.createClient = function (port_arg, host_arg, options) {
    var port = port_arg || default_port,
        host = host_arg || default_host,
        redis_client, net_client;

    net_client = net.createConnection(port, host);

    redis_client = new RedisClient(net_client, options);

    redis_client.port = port;
    redis_client.host = host;

    return redis_client;
};

Parece que net.createConnection tentará se conectar a um soquete unix se for chamado com um argumento, que se parece com um caminho. Eu sugiro que você implemente uma correção e envie um pull request, já que isso parece algo que vale a pena suportar.