Redis
 sql >> Base de données >  >> NoSQL >> Redis

Connexion Redis via socket sur Node.js

Mise à jour : Ma réponse ci-dessous n'est pas vraiment correcte. Il s'avère que la solution du problème que je mentionne ci-dessous fonctionne toujours. C'est plus une coïncidence, IMO, mais vous pouvez faire quelque chose comme ça, et ça devrait marcher :

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

Comme vous le voyez dans l'extrait de code ci-dessous, cela sera transmis à net.createConnection qui se connectera au socket unix /tmp/redis.sock .

Ancienne réponse :

Il y a un problème fermé à propos de ce node_redis/issues/204. Il semble, pensé, que l'API node.js net.createConnection sous-jacente ait changé depuis. Il semble que ce serait un tout petit correctif dans exports.createClient de node_redis fonction :

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;
};

Il semble que net.createConnection tentera de se connecter à un socket unix s'il est appelé avec un argument, qui ressemble à un chemin. Je vous suggère d'implémenter un correctif et d'envoyer une demande d'extraction, car cela semble être quelque chose qui mérite d'être pris en charge.