sql >> Base de Datos >  >> NoSQL >> Redis

Conexión Redis a través de socket en Node.js

Actualización: Mi respuesta a continuación no es realmente correcta. Resulta que la solución en el problema que menciono a continuación todavía funciona. En mi opinión, es más una coincidencia, pero puedes hacer algo como esto y debería funcionar:

var redis = require('redis'),
    client = redis.createClient('/tmp/redis.sock');

Como puede ver en el fragmento de código a continuación, esto se pasará a net.createConnection que se conectará al socket de Unix /tmp/redis.sock .

Respuesta anterior:

Hay un problema cerrado sobre este node_redis/issues/204. Parece, pensó, que la API subyacente de node.js net.createConnection ha cambiado desde entonces. Parece que sería una solución bastante pequeña en exports.createClient de node_redis función:

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 intentará conectarse a un socket de Unix si se llama con un argumento, que parece una ruta. Le sugiero que implemente una solución y envíe una solicitud de extracción, ya que parece algo que vale la pena respaldar.