Node-redis: рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВ рдХрд┐ рд░реЗрдбрд┐рд╕ рд╕рд░реНрд╡рд░ рдЪрд▓ рд░рд╣рд╛ рд╣реЛ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 16 рдЕрдХреНрддреВре░ 2011  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: NodeRedis/node-redis

рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ Ubuntu.js рд╕рд░реНрд╡рд░ рд╣реИ рдЬреЛ рдЙрдмрдВрдЯреВ рдХреЗ upstart рд╕рд╛рде рдмреВрдЯ рдкрд░ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИред Redis рдХреЗ рдКрдкрд░ рдФрд░ рдЪрд▓рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдиреЛрдб.рдЬреЗрдПрд╕ рд╕рд░реНрд╡рд░ рд╢реБрд░реВ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, redis.createClient() рдПрдХ рдЕрдкрд╡рд╛рдж рдлреЗрдВрдХрддрд╛ рд╣реИ:

node.js:134
        throw e; // process.nextTick error, or 'error' event on first tick
        ^
Error: Redis connection to 127.0.0.1:6379 failed - ECONNREFUSED, Connection refused
    at Socket.<anonymous> (/var/www/php-jobs/node_modules/redis/index.js:88:28)
    at Socket.emit (events.js:64:17)
    at Array.<anonymous> (net.js:830:27)
    at EventEmitter._tickCallback (node.js:126:26)

рдмреЗрд╢рдХ рдореИрдВ рдЗрд╕реЗ рдПрдХ рдХреЛрд╢рд┐рд╢ / рдкрдХрдбрд╝рдиреЗ рдХреЗ рдмрдпрд╛рди рдореЗрдВ рд▓рдкреЗрдЯрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддрд╛ рд╣реВрдВред рдореЗрд░реЗ рд╕рд░реНрд╡рд░ рдХреА рд╢реБрд░реБрдЖрдд:

var redis  = require("redis");

function initializeRedis(callback) {
    (function createClient(){
        var client;
        try {
            client = redis.createClient();
        } catch (e) {
            setTimeout(createClient, 1000);
        }
        callback(client);
    })();
};

initializeRedis(function(client) {
  // Do things with client
});

рд╣рд╛рд▓рд╛рдБрдХрд┐, рдЗрд╕рд╕реЗ рдХреЛрдИ рдлрд░реНрдХ рдирд╣реАрдВ рдкрдбрд╝рддрд╛, рдлрд┐рд░ рднреА рдореБрдЭреЗ рдПрдХ рдЕрдкрд╡рд╛рдж рдорд┐рд▓рд╛ред рдорд╛рдорд▓рд╛ рдХреНрдпрд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдореИрдВ рдпрд╣ рдХреИрд╕реЗ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ рдХрд┐ рдореЗрд░рд╛ рд╕рд░реНрд╡рд░ рд░реЗрдбрд┐рд╕ рд╣реЛрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдЗрдВрддрдЬрд╛рд░ рдХрд░ рд░рд╣рд╛ рд╣реИ?

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

const рдХреНрд▓рд╛рдЗрдВрдЯ = redis.createClient ({
рд╣реЛрд╕реНрдЯ: process.env.redis_hostname,
рдкреЛрд░реНрдЯ: process.env.redis_port
})
client.on ('рддреНрд░реБрдЯрд┐', (рддреНрд░реБрдЯрд┐) => {
logger.error (error.message);
})
client.on ('рдХрдиреЗрдХреНрдЯ', () => {
logger.info ('рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рд░реЗрдбрд┐рд╕ рд╕реЗ рдЬреБрдбрд╝рд╛');
})

image
рдЗрд╕рд▓рд┐рдП рдпрд╣ рд░реЗрдбрд┐рд╕ рд╕рд░реНрд╡рд░ рд╕реЗ рдЬреБрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдорддрджрд╛рди рдХрд░рддрд╛ рд░рд╣реЗрдЧрд╛ рдФрд░ рдЬрдм рдЗрд╕реЗ рдПрдХ рдХрдиреЗрдХреНрд╢рди рдорд┐рд▓реЗрдЧрд╛ рддреЛ рдпрд╣ рдЕрдкрдиреЗ рдЖрдк рдЬреБрдбрд╝ рдЬрд╛рдПрдЧрд╛ред рддреНрд╡рд░рд┐рдд рд╕рдорд╛рдзрд╛рди рдХреЗ рд▓рд┐рдП @mranney рдзрдиреНрдпрд╡рд╛рдж

рд╕рднреА 3 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдРрд╕рд╛ рдЗрд╕рд▓рд┐рдП рд╣реЛ рд░рд╣рд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдХреНрд▓рд╛рдЗрдВрдЯ рдПрдХ "рддреНрд░реБрдЯрд┐" рдИрд╡реЗрдВрдЯ рдХреЛ рдЫреЛрдбрд╝ рд░рд╣рд╛ рд╣реИред рдиреЛрдб рдореЗрдВ, "рддреНрд░реБрдЯрд┐" рдирд╛рдо рдХреА рдШрдЯрдирд╛рдПрдВ рд╡рд┐рд╢реЗрд╖ рд╣реИрдВред рдпрджрд┐ рдЖрдк рдЙрдирдХреЗ рд▓рд┐рдП рдирд╣реАрдВ рд╕реБрдирддреЗ рд╣реИрдВ, рддреЛ рд╡реЗ рдЕрдкрд╡рд╛рджреЛрдВ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВред рддреЛ рдЕрдкрдиреЗ рдЧреНрд░рд╛рд╣рдХ рдкрд░ "рддреНрд░реБрдЯрд┐" рдХреЗ рд▓рд┐рдП рдПрдХ рд╢реНрд░реЛрддрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ, рдФрд░ рдЖрдк рджреБрд░реНрдШрдЯрдирд╛рдЧреНрд░рд╕реНрдд рдирд╣реАрдВ рд╣реЛрдВрдЧреЗред рдХрдиреЗрдХреНрд╢рди рд╕реЗ рдЗрдирдХрд╛рд░ рдХрд░рдиреЗ рдкрд░ рд╣рдо рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдкреБрдирдГ рдкреНрд░рдпрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реБрдирддреЗ рд╣реА рдпрд╣ рд╕реНрд╡рдпрдВ рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред

рдореИрдВ рдлрд┐рд░ рд╕реЗ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рддрд░реАрдХреЗ рдкрд░ рдЬрд╛ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ рд╣рд╛рд▓рд╛рдВрдХрд┐ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдмрд╣реБрдд рд╣реА рд╕рд╛рдорд╛рдиреНрдп рдкрд░рд┐рджреГрд╢реНрдп рдмрд╣реБрдд рд╕реЗ рд▓реЛрдЧреЛрдВ рдХреЛ рднреНрд░рдорд┐рдд рдХрд░рддрд╛ рд╣реИред

рдХреНрдпрд╛ рдЗрдирдореЗрдВ рд╕реЗ рдХрд┐рд╕реА рдХреЛ рд╕рдВрднрд╛рд▓рд╛ рдЧрдпрд╛ рд╣реИ! рдореИрдВ рдПрдХ рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рдмреНрд▓реЙрдХ рдореЗрдВ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рдкрдХрдбрд╝рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реВрдБред рд▓реЗрдХрд┐рди, рдпрд╣ рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИред

const рдХреНрд▓рд╛рдЗрдВрдЯ = redis.createClient ({
рд╣реЛрд╕реНрдЯ: process.env.redis_hostname,
рдкреЛрд░реНрдЯ: process.env.redis_port
})
client.on ('рддреНрд░реБрдЯрд┐', (рддреНрд░реБрдЯрд┐) => {
logger.error (error.message);
})
client.on ('рдХрдиреЗрдХреНрдЯ', () => {
logger.info ('рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рд░реЗрдбрд┐рд╕ рд╕реЗ рдЬреБрдбрд╝рд╛');
})

image
рдЗрд╕рд▓рд┐рдП рдпрд╣ рд░реЗрдбрд┐рд╕ рд╕рд░реНрд╡рд░ рд╕реЗ рдЬреБрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдорддрджрд╛рди рдХрд░рддрд╛ рд░рд╣реЗрдЧрд╛ рдФрд░ рдЬрдм рдЗрд╕реЗ рдПрдХ рдХрдиреЗрдХреНрд╢рди рдорд┐рд▓реЗрдЧрд╛ рддреЛ рдпрд╣ рдЕрдкрдиреЗ рдЖрдк рдЬреБрдбрд╝ рдЬрд╛рдПрдЧрд╛ред рддреНрд╡рд░рд┐рдд рд╕рдорд╛рдзрд╛рди рдХреЗ рд▓рд┐рдП @mranney рдзрдиреНрдпрд╡рд╛рдж

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

Mickael-van-der-Beek picture Mickael-van-der-Beek  ┬╖  6рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

id0Sch picture id0Sch  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

lemon707 picture lemon707  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

jackycchen picture jackycchen  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

strumwolf picture strumwolf  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ