sql >> Database >  >> NoSQL >> Redis

Redis Verbinding via socket op Node.js

Bijwerken: Mijn antwoord hieronder is niet echt correct. Het blijkt dat de oplossing in het onderstaande probleem nog steeds werkt. Het is meer toeval, IMO, maar je kunt zoiets als dit doen, en het zou moeten werken:

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

Zoals je kunt zien in het onderstaande codefragment, wordt dit doorgegeven aan net.createConnection die verbinding maakt met de unix-socket /tmp/redis.sock .

Oud antwoord:

Er is een gesloten probleem over dit node_redis/issues/204. Het lijkt, dacht, dat de onderliggende node.js net.createConnection API sindsdien is veranderd. Het lijkt erop dat het een vrij kleine oplossing zou zijn in exports.createClient van node_redis functie:

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

Het lijkt alsof net.createConnection zal proberen verbinding te maken met een unix-socket als het wordt aangeroepen met één argument, dat eruitziet als een pad. Ik raad je aan een oplossing te implementeren en een pull-verzoek te sturen, aangezien dit iets lijkt dat de moeite van het ondersteunen waard is.



  1. Een tekenreeks en een getal samenvoegen in SQL

  2. MongoDB $ lookup Objectid krijgt lege array?

  3. Probleem bij het deserialiseren van redis-cache naar objecten in Spring-boot

  4. Hoe voer ik het SQL Join-equivalent uit in MongoDB?