sql >> Databáze >  >> NoSQL >> Redis

Redis Connection přes socket na Node.js

Aktualizace: Moje odpověď níže není opravdu správná. Ukazuje se, že řešení v problému, který zmiňuji níže, ve skutečnosti stále funguje. Je to spíše náhoda, IMO, ale můžete udělat něco takového a mělo by to fungovat:

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

Jak vidíte z fragmentu kódu níže, bude to předáno net.createConnection který se připojí k unixovému socketu /tmp/redis.sock .

Stará odpověď:

O tomto node_redis/issues/204 je uzavřený problém. Zdá se, že základní node.js net.createConnection API se od té doby změnilo. Vypadá to, že by to byla docela malá oprava v node_redis' exports.createClient funkce:

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

Zdá se, že net.createConnection se pokusí připojit k unixovému socketu, pokud je volán s jedním argumentem, který vypadá jako cesta. Navrhuji, abyste provedli opravu a poslali žádost o stažení, protože to vypadá jako něco, co stojí za to podpořit.



  1. Vlastní chybové zprávy s Mongoose

  2. NodeJS + MongoDB:Získávání dat z kolekce pomocí findOne ()

  3. Mongoose vytáhne ObjectId z pole

  4. Redis - nějaký způsob, jak spustit událost, když se hodnota již aktivně nezapisuje?