Redis
 sql >> Database >  >> NoSQL >> Redis

Redis Connessione tramite socket su Node.js

Aggiornamento: La mia risposta di seguito non è davvero corretta. Si scopre che la soluzione nel problema che menziono di seguito funziona ancora. È più una coincidenza, IMO, ma puoi fare qualcosa del genere e dovrebbe funzionare:

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

Come puoi vedere dallo snippet di codice qui sotto, questo verrà passato a net.createConnection che si collegherà al socket unix /tmp/redis.sock .

Vecchia risposta:

C'è un problema chiuso su questo node_redis/issues/204. Sembra, pensato, che l'API node.js net.createConnection sottostante sia cambiata da allora. Sembra che sarebbe una soluzione piuttosto piccola in exports.createClient di node_redis funzione:

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

Sembra che net.createConnection tenterà di connettersi a un socket unix se viene chiamato con un argomento, che sembra un percorso. Ti suggerisco di implementare una correzione e inviare una richiesta pull, poiché sembra qualcosa che valga la pena supportare.