Node-redis: рдкреНрд░рд╣рд░реА рдЬрд╛рдЧрд░реВрдХ

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

рдирдорд╕реНрддреЗ,

рдХреНрдпрд╛ рдиреЛрдб_рд░реЗрдбрд┐рд╕ рдкреНрд░рд╣рд░реА рдХреЛ рдЬрд╛рдЧрд░реВрдХ рдХрд░рдиреЗ рдХреА рдХреЛрдИ рдпреЛрдЬрдирд╛ рд╣реИ? рдореИрдВ рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рдкрд░ рдкреНрд░рд╣рд░реА рдХреА рд╕реВрдЪреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪ рд░рд╣рд╛ рд╣реВрдВ, рдлрд┐рд░ рдорд╛рд╕реНрдЯрд░реНрд╕ рдХреЛ рдЦреЛрдЬреЗрдВ рдФрд░ рдХрдиреЗрдХреНрдЯ рдХрд░реЗрдВ, рдФрд░ рдорд╛рд╕реНрдЯрд░реНрд╕ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рд╕реЗрдВрдЯреАрдиреЗрд▓ рд╕рдВрджреЗрд╢ рдХреА рд╕рджрд╕реНрдпрддрд╛ рд▓реЗрдВред рдпрджрд┐ рдирд╣реАрдВ, рддреЛ рдЗрд╕ рдкрд░ рдХрд╛рдо рд╢реБрд░реВ рдХрд░рдиреЗ рдореЗрдВ рдЦреБрд╢реА рд╣реЛрдЧреА!

рдЯрдВрдЧреБрдпреВ

Feature Request Help wanted

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

+1, рдЗрд╕ рдиреЛрдб_рд░реЗрдбрд┐рд╕ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЗ рд╢реАрд░реНрд╖ рдкрд░ рдПрдХ рд░реИрдкрд░ рдХреНрдпреЛрдВ рдирд╣реАрдВ рдмрдирд╛рддреЗ? рдпрджрд┐ рдЖрдк рдЗрд╕ рдкрд░ рдХрд╛рдо рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ рддреЛ рдХреГрдкрдпрд╛ рдореБрдЭреЗ рдмрддрд╛рдПрдВ рдХреНрдпреЛрдВрдХрд┐ рдореИрдВ рдЙрд╕ рднрдВрдбрд╛рд░ рдХреЛ рддрд╛рд░рд╛рдВрдХрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ред

рдирдорд╕реНрддреЗ,

рдореИрдВрдиреЗ рдЗрд╕ рдкрд░ рдХрд╛рдо рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рджрд┐рдпрд╛ рд╣реИ, рдкрд░рд┐рдгрд╛рдо https://github.com/tanguylebarzic/node_redis рдкрд░ рдЪреЗрдХ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ
рдЙрдкрдпреЛрдЧ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг:

var RedisMetaClient = require("./../node_redis/sentinel").RedisMetaClient;
var sentinels = [
    {host: "127.0.0.1", port: 26382},
    {host: "127.0.0.1", port: 26383},
    {host: "127.0.0.1", port: 26384}
];
var redisMetaClient = new RedisMetaClient("mymaster", sentinels);
var i = 0;

var client = redisMetaClient.createMasterClient();
client.on('error', function(error){
    console.log(error);
});

setInterval(function(){
    client.set('test:' + i, i, function(error, result){
        if(!error){
            console.log('success, ' + i);
            ++i;
        }
        else {
            console.log('error, ' + i);
        }
   });
}, 500);

рдореВрд▓ рд░реВрдк рд╕реЗ, рдЖрдкрдХреЛ рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ рдПрдХ 'RedisMetaClient' рдмрдирд╛рдирд╛ рд╣реЛрдЧрд╛, рдЬрд┐рд╕реЗ рдорд╛рд╕реНрдЯрд░ рдХреЗ рдирд╛рдо рдФрд░ рдкреНрд░рд╣рд░реА рдХреА рд╕реВрдЪреА рдХреЗ рд╕рд╛рде рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реЛред рдлрд┐рд░, redisMetaClient.createMasterClient(); рдХреЙрд▓ рдХрд░рдиреЗ рд╕реЗ рдЖрдкрдХреЛ рд╕рд╛рдорд╛рдиреНрдп redis.createClient(); рд╕рдорд╛рди рдХреНрд▓рд╛рдЗрдВрдЯ рдорд┐рд▓реЗрдЧрд╛

рдХреНрдпрд╛ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ:

  • рдмреБрдирд┐рдпрд╛рджреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛, рдпрд╛рдиреАред рд╕рд╣реА рдорд╛рд╕реНрдЯрд░ рдХрд╛ рд╕реЗрдЯрдЕрдк, рдлреЗрд▓рдУрд╡рд░... рдпрджрд┐ рдорд╛рд╕реНрдЯрд░ рдмрджрд▓ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рд╕рднреА рдореМрдЬреВрджрд╛ рдорд╛рд╕реНрдЯрд░ рдХреНрд▓рд╛рдЗрдВрдЯ ( redisMetaClient.createMasterClient(); рджреНрд╡рд╛рд░рд╛ рдмрдирд╛рдП рдЧрдП) рдирдП рдорд╛рд╕реНрдЯрд░ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкрдбреЗрдЯ рдХрд┐рдП рдЬрд╛рдПрдВрдЧреЗ, рддрд╛рдХрд┐ рдХрд┐рд╕реА рдХреЛ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреА рддрд▓рд╛рд╢ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рди рд╣реЛред on('error') рдХрдиреЗрдХреНрд╢рди рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред
    рдореИрдВрдиреЗ рдСрдлрд╝рд▓рд╛рдЗрди рдХрддрд╛рд░ рдХреЗ рд╡рд┐рдЪрд╛рд░ рдХреЛ рд╕рдВрд░рдХреНрд╖рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛ рд╣реИ, рдпрд╛рдиреАред рдорд╛рд╕реНрдЯрд░ рдХреЗ рдорд┐рд▓рдиреЗ рдФрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рд╣реЛрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдХрдорд╛рдВрдб рднреЗрдЬрдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ред
  • рдореИрдВрдиреЗ рд╕рд░рд▓ рдЕрдиреБрд░реЛрдзреЛрдВ, рдкрдм/рдЙрдк рдХреЗ рд╕рд╛рде рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рд╣реИ ... рд▓реЗрдХрд┐рди рдмрд╣реБ рдХреЗ рд╕рд╛рде рдирд╣реАрдВ (рдХрд╛рдо рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдмрд╕ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдирд╣реАрдВ рд╣реИ)ред

рдпрд╣ рдХреИрд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:
рдореИрдВрдиреЗ рдПрдХрд▓ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЗ рдХреЛрдб рдФрд░ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдпрдерд╛рд╕рдВрднрд╡ рдХрдо рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛ рд╣реИ ('рдХреНрд▓рд╛рдЗрдВрдЯ.рдЬреЗрдПрд╕' рдореЗрдВ рдХреНрдпрд╛ рд╣реИ)ред Sentinel.js рдореЗрдВ рдкреНрд░рд╣рд░реА рд╕реЗ рдирд┐рдкрдЯрдиреЗ рдХреЗ рд▓рд┐рдП, client.js рдХреЗ рдЪрд╛рд░реЛрдВ рдУрд░ рдПрдХ рдкреНрд░рдХрд╛рд░ рдХрд╛ рдЖрд╡рд░рдг рд╣реЛрддрд╛ рд╣реИред

рдХреНрдпрд╛ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдмрд╛рдХреА рд╣реИ:

  • рджрд╛рд╕реЛрдВ рдХреЗ рд╕рд╛рде рд╡реНрдпрд╡рд╣рд╛рд░ (рдЕрднреА рдХреЗ рд▓рд┐рдП, рдЙрдирдХреЗ рдЖрд╕рдкрд╛рд╕ рдХреБрдЫ рднреА рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ)ред
  • рдХрдИ рдкрд░рд┐рджреГрд╢реНрдпреЛрдВ рдХрд╛ рдкрд░реАрдХреНрд╖рдг (рд╣рд╛рде рд╕реЗ рдФрд░ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рджреЛрдиреЛрдВ)
  • рдкреНрд░рд▓реЗрдЦрди

рдЬреНрдЮрд╛рдд рдкрд╣рд▓реБ:

  • рдШрдЯрдирд╛ ready рдПрдХ рдорд╛рд╕реНрдЯрд░ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЗ рд▓рд┐рдП рдХрдИ рдмрд╛рд░ рдЯреНрд░рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдпрджрд┐ рдПрдХ рд╡рд┐рдлрд▓рддрд╛ рд╣реБрдИ, рдЬрд┐рд╕рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рдЕрдкреНрд░рддреНрдпрд╛рд╢рд┐рдд рд╡реНрдпрд╡рд╣рд╛рд░ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдЬрд┐рд╕ рддрд░рд╣ рд╕реЗ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
  • рдХрдИ рдЕрдиреНрдп рдЬрд┐рдирдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛

tanguylebarzic, рдкреНрд░рд╣рд░реА рд╕рдорд░реНрдерди рд╕реЗ рдирд┐рдкрдЯрдиреЗ рдХреЗ рд▓рд┐рдП рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред рдореИрдВ рдЖрдкрдХреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ рднреНрд░рдорд┐рдд рд╣реВрдВ, рд╣рд╛рд▓рд╛рдВрдХрд┐: рдЖрдк рдЕрдкрдиреЗ рдиреЛрдб.рдЬреЗрдПрд╕ рдХреЛрдб рдореЗрдВ рд╕реЗрдВрдЯреАрдиреЗрд▓ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдорд╛рд╕реНрдЯрд░ рдФрд░ рджрд╛рд╕реЛрдВ рдХреА рдкрд╣рдЪрд╛рди рдХрд░рдирд╛, рдПрдХ рдХреЛрд░рдо рд╕рдВрднрд╛рд▓рдирд╛) рдХреЛ рд▓рд╛рдЧреВ рдХрд░ рд░рд╣реЗ рд╣реИрдВред рд▓реЗрдХрд┐рди рдкреНрд░рд╣рд░реА рдбреЙрдХреНрд╕ рдореЗрдВ рдЬреЛ рд░реЗрдбрд┐рд╕-рд╕реЗрдВрдЯрд┐рдирд▓ рдбреЗрдореЙрди рдХреЗ config. рдиреЛрдб рдХреЛ рдЗрд╕ рдмрд╛рдд рдХреА рдкрд░рд╡рд╛рд╣ рдирд╣реАрдВ рдХрд░рдиреА рдЪрд╛рд╣рд┐рдП рдХрд┐ рдХрд┐рд╕реА рджрд┐рдП рдЧрдП рдкреНрд░рд╣рд░реА рдХреЗ рд▓рд┐рдП рдЧреБрд░реБ рдпрд╛ рджрд╛рд╕ рдХреМрди рд╣реИрдВ, рдЗрд╕реЗ рдХреЗрд╡рд▓ рдкреНрд░рд╣рд░реА рд╕реЗ рдЬреБрдбрд╝рдирд╛ рдЪрд╛рд╣рд┐рдП, рдЬреЛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╕рднреА рдХреЛ рд╕рдВрднрд╛рд▓ рд░рд╣рд╛ рд╣реИред (рдФрд░ рдЙрд╕ SentinelClient рдХреЛ рдПрдХ рдирд┐рдпрдорд┐рдд RedisClient рдХреА рддрд░рд╣ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рдЗрд╕рд▓рд┐рдП рдпрд╣ рдкреАрдЫреЗ рдХреА рдУрд░-рдХрдиреЗрдХреНрдЯ-рд░реЗрдбрд┐рд╕ рд╕рддреНрд░ рд╕реНрдЯреЛрд░, рдЖрджрд┐ рдХреЗ рд╕рд╛рде рд╕рдВрдЧрдд рд╣реИ)

рдХреНрдпрд╛ рдЖрдк рдЕрдкрдирд╛ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реНрдкрд╖реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ? рдзрдиреНрдпрд╡рд╛рдж!

рдореИрдВрдиреЗ RedisSentinelClient рд╕рд╛рде рдПрдХ рд╡реИрдХрд▓реНрдкрд┐рдХ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд▓рд╛рдЧреВ рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рджрд┐рдпрд╛ рд╣реИ рдЬреЛ рдкрд╛рд░рджрд░реНрд╢реА рд░реВрдк рд╕реЗ RedisClient рддрд░рд╣ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд░рддрд╛ рд╣реИ: https://github.com/DocuSignDev/node_redis

рд╣рдореЗрд╢рд╛ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛, рд╕реБрдЭрд╛рд╡реЛрдВ рдФрд░/рдпрд╛ рд╕рд╣рдпреЛрдЧрд┐рдпреЛрдВ рдореЗрдВ рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВред

newleafdigital: рджреЗрд░ рд╕реЗ рдЙрддреНрддрд░ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдЦреЗрдж рд╣реИред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдореИрдВрдиреЗ рджреЗрдЦрд╛ рдХрд┐ рдЬрд┐рд╕ рддрд░рд╣ рд╕реЗ рдореИрдВрдиреЗ рдХрд┐рдпрд╛ рдерд╛ рдЙрд╕реЗ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣ рд╕рд╛рдл рдирд╣реАрдВ рдерд╛ (рдХреНрд▓рд╛рдЗрдВрдЯ рдкрд░ рдмрд╣реБрдд рдЕрдзрд┐рдХ рддрд░реНрдХ)ред рдореИрдВрдиреЗ рдЗрд╕реЗ рдПрдВрдЯреАрд░реЗрдЬрд╝ рдХреЗ рджрд┐рд╢рд╛рдирд┐рд░реНрджреЗрд╢реЛрдВ рд╕реЗ рдмреЗрд╣рддрд░ рдорд┐рд▓рд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрджрд▓ рджрд┐рдпрд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЕрднреА рднреА рдХреБрдЫ рдкреНрд░рд╢реНрди рд╢реЗрд╖ рдЖрдИрдПрдордУ рд╣реИрдВред рдЖрдкрдХрд╛ рджреГрд╖реНрдЯрд┐рдХреЛрдг рджрд┐рд▓рдЪрд╕реНрдк рд▓рдЧ рд░рд╣рд╛ рд╣реИ (рдФрд░ рдХреНрд▓рд╕реНрдЯрд░ рдЬрд╛рдЧрд░реВрдХрддрд╛ рдЬреЛрдбрд╝реЗрдВ!), рдореИрдВ рдЗрд╕реЗ рджреЗрдЦрдиреЗ рдЬрд╛ рд░рд╣рд╛ рд╣реВрдБ!

@newleafdigital : рдореИрдВрдиреЗ

io.set('store', new socketio.RedisStore({
    redis: redis,
    redisPub:   redis.createClient( 26379, "127.0.0.1", {sentinel: true} ),
    redisSub:   redis.createClient( 26379, "127.0.0.1", {sentinel: true} ),
    redisClient:redis.createClient( 26379, "127.0.0.1", {sentinel: true} )
 }));

рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рдкрд░ рдореЗрд░рд╛ рдРрдк рдХреНрд░реИрд╢:

 Error: Redis connection to 127.0.0.1:6379 failed - connect ECONNREFUSED
     at RedisClient.on_error (/home/green/debug/node_modules/redis/index.js:168:24)
     at Socket.RedisClient.initialize_stream_listeners.stream.on.self.should_buffer (/home/green/debug/node_modules/redis/index.js:93:14)
     at Socket.EventEmitter.emit (events.js:96:17)
     at Socket._destroy.self.errorEmitted (net.js:328:14)
     at process.startup.processNextTick.process._tickCallback (node.js:244:9)
 [Wed, 13 Feb 2013 16:46:56 GMT] INFO worker 6622 died

рдХреГрдкрдпрд╛ рдзреНрдпрд╛рди рд░рдЦреЗрдВ рдХрд┐ рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢ рдпрд╣ рдмрддрд╛рддрд╛ рд╣реИ рдХрд┐ рдХрдиреЗрдХреНрд╢рди 26379 рдХреЗ рдмрдЬрд╛рдп 6379 рдХреЛ рдкреЛрд░реНрдЯ рдХрд░рдиреЗ рдореЗрдВ рд╡рд┐рдлрд▓ рд░рд╣рд╛ !!!

рдХреЛрдИ рд╡рд┐рдЪрд╛рд░ рдХреНрдпрд╛ рд╕рдорд╕реНрдпрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИ? рдЬрдм рдореИрдВ рд╕реАрдзреЗ рд░реЗрдбрд┐рд╕-рд╕рд░реНрд╡рд░ (рдорд╛рд╕реНрдЯрд░) рд╕реЗ рдЬреБрдбрд╝рддрд╛ рд╣реВрдВ рддреЛ рд╕рдм рдХреБрдЫ рдареАрдХ рд╣реЛрддрд╛ рд╣реИред

рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд▓рд┐рдП рдПрдХ рд╣реИрд╢ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ:

redis.createClient({ port: 26379, host: "127.0.0.1", sentinel: true } );

рдЬрдм рдЖрдк рдкреНрд░рд╣рд░реА рд╕реЗ redis-cli -p 23679 (рдорд╛рд╕реНрдЯрд░ - рдкреНрд░рд╣рд░реА != рдорд╛рд╕реНрдЯрд░ рд╕реЗ рдирд╣реАрдВ) рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЬреБрдбрд╝рддреЗ рд╣реИрдВ, рддреЛ рдХреНрдпрд╛ рдпрд╣ рдХрдиреЗрдХреНрдЯ рд╣реЛрддрд╛ рд╣реИ?

рез) рд╣рд╛рдБ, redis-cli -p 26379 рдорд╛рдзреНрдпрдо рд╕реЗ рдкреНрд░рд╣рд░реА рд╕реЗ рдЬреБрдбрд╝рдирд╛ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдЬреБрдбрд╝ рдЬрд╛рддрд╛ рд╣реИред
2) рд╡реИрдХрд▓реНрдкрд┐рдХ рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрдиреЗрдХреНрдЯ рдкрд░ рдХреНрд░реИрд╢ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди redisSentinelClient рдХреЗ рдкрд╣рд▓реЗ get рдкрд░ рдПрдХ рддреНрд░реБрдЯрд┐ рджреЗрддрд╛ рд╣реИ:

[Error: ERR unknown command 'get']

рдЙрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдореИрдВрдиреЗ рд╕рд╛рдорд╛рдиреНрдп рд░реЗрдбрд┐рд╕ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ (рд╕реЙрдХреЗрдЯ.io рдирд╣реАрдВ)ред

рд╣рд╣реНрд╣реНрд╣реНрдоред рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдХреЗ рдореЙрдбреНрдпреВрд▓ рдХреА рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рди рд╣реЛ .... рдЬрдм рдореИрдВ рдкреНрд░рд╣рд░реА рд╕реЗ рдЬреБрдбрд╝рддрд╛ рд╣реВрдВ рддреЛ рдпрд╣ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдЬреБрдбрд╝ рдЬрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдХрд┐рд╕реА рднреА рд░реЗрдбрд┐рд╕ рдХрдорд╛рдВрдб рдХреЛ рдирд╣реАрдВ рдЬрд╛рдирддрд╛ рд╣реИ:

green<strong i="6">@mycomp1</strong>:~/redis/redis$ src/redis-cli -p 26379
redis 127.0.0.1:26379> set test 1
(error) ERR unknown command 'set'
redis 127.0.0.1:26379>

рдЗрд╕рдХрд╛ рдХреНрдпрд╛ рдХрд╛рд░рдг рд░рд╣ рд╕рдХрддрд╛ рд╣реИ? рдмрд╕ рд╕реНрдкрд╖реНрдЯ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП: рдореИрдВ рдкреНрд░рд╣рд░реА рд╕реЗ рдЬреБрдбрд╝ рд░рд╣рд╛ рд╣реВрдВ, рди рддреЛ рд╕реНрд╡рд╛рдореА рд╕реЗ рдФрд░ рди рд╣реА рдХрд┐рд╕реА рджрд╛рд╕ рд╕реЗред рд╕рд╣реА рдмрд╛рдд?

рдЕрддрд┐рд░рд┐рдХреНрдд: рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реЛрдВ рдХреЛ рдФрд░ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рдкрдврд╝рдирд╛ рдореИрдВрдиреЗ рджреЗрдЦрд╛ рдХрд┐ рдпрд╣ рд╡реНрдпрд╡рд╣рд╛рд░ рд╕рд╛рдорд╛рдиреНрдп рд╣реИред рд▓реЗрдХрд┐рди рдЖрдкрдХрд╛ рдЧреНрд░рд╛рд╣рдХ рдРрд╕рд╛ рдХреНрдпреЛрдВ рдХрд░рддрд╛ рд╣реИ? рдХреНрдпрд╛ рдЗрд╕реЗ "рд╕рд╛рдорд╛рдиреНрдп" рд░реЗрдбрд┐рд╕ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рд╡реНрдпрд╡рд╣рд╛рд░ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП?

рдкреНрд░рд╣рд░реА рдХреЛ рд╕реНрд╡рдпрдВ рдкреНрд░рд╛рдкреНрдд/рд╕реЗрдЯ/рдЖрджрд┐ рдХреЛ рд╕рдВрднрд╛рд▓рдирд╛ рдирд╣реАрдВ рдЪрд╛рд╣рд┐рдП, рд▓реЗрдХрд┐рди рдкреНрд░рд╣рд░реА _client_ рдХреЛ рдЗрд╕реЗ рдорд╛рд╕реНрдЯрд░ рдХреЛ рд╕реМрдВрдкрдХрд░ рдЗрд╕реЗ рд╕рдВрднрд╛рд▓рдирд╛ рдЪрд╛рд╣рд┐рдПред
рдХреНрдпрд╛ рдЖрдк рд╕реЗрдВрдЯрд┐рдирд▓ рдХреНрд▓рд╛рдЗрдВрдЯ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдореЗрдВ рдХреБрдЫ рдбрд┐рдмрдЧрд┐рдВрдЧ рдХреЛрдб рдбрд╛рд▓ рд╕рдХрддреЗ рд╣реИрдВ, рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдпрд╣ рд╕реЗрдВрдЯрд┐рдирд▓ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛ рдЗрдВрд╕реНрдЯреЗрдВрдЯ рдХрд░ рд░рд╣рд╛ рд╣реИ рдФрд░ рдирд┐рдпрдорд┐рдд рдХреНрд▓рд╛рдЗрдВрдЯ рдирд╣реАрдВ рд╣реИ?
рдПрдХ рдкреНрд░рд╣рд░реА рдкрд░реАрдХреНрд╖рдг рд╕реВрдЯ рднреА рд╣реИ рдЬрд┐рд╕реЗ рд╣рдордиреЗ рдЬреЛрдбрд╝рд╛, рдореЛрдЪрд╛ рдХреЗ рд╕рд╛рде рдЪрд▓рд╛рдПрдВ - рд╢рд╛рдпрдж рдЗрд╕реЗ рдЪрд▓рд╛рдПрдВ (рдмрдВрджрд░рдЧрд╛рд╣ рдмрджрд▓рдирд╛) рдФрд░ рджреЗрдЦреЗрдВ рдХрд┐ рдХреНрдпрд╛ рд╡реЗ рдЖрдкрдХреЗ рд╕рд┐рд╕реНрдЯрдо рдкрд░ рдЧреБрдЬрд░рддреЗ рд╣реИрдВ?

рдзрдиреНрдпрд╡рд╛рдж

@newleafdigital : рдХреНрдпрд╛ рдпрд╣ рд╕рдВрднрд╡ рд╣реИ рдХрд┐ рдЖрдк рд╕реЗрдВрдЯреАрдиреЗрд▓ рдХреЛ рдЙрд╕реА рдорд╢реАрди рдореЗрдВ рд░реЗрдбрд┐рд╕ рдХреЗ рд░реВрдк рдореЗрдВ рдЪрд▓рд╛рдиреЗ рдХреА рдЕрдкреЗрдХреНрд╖рд╛ рдХрд░реЗрдВ? рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рдЕрд▓рдЧ рдорд╢реАрди рдкрд░ рдореЗрд░рд╛ рдкреНрд░рд╣рд░реА рдЪрд▓ рд░рд╣рд╛ рд╣реИ (рдЬрд┐рд╕ рдкрд░ рдиреЛрдб рдЪрд▓рддрд╛ рд╣реИ) рдФрд░ рдореБрдЭреЗ рд╕рдВрджреЗрд╣ рд╣реИ рдХрд┐ рдпрд╣ рдкрд░рд┐рджреГрд╢реНрдп рд╡рд░реНрддрдорд╛рди рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдореБрдЭреЗ рдЕрднреА рднреА рддреНрд░реБрдЯрд┐ рдорд┐рд▓рддреА рд╣реИ

 Error: Redis connection to 127.0.0.1:6379 failed - connect ECONNREFUSED

рдФрд░ рдпрд╣ рдореБрдЭреЗ рдЗрд╕ рдирд┐рд╖реНрдХрд░реНрд╖ рдкрд░ рд▓реЗ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рдпрд╣ 127.0.0,1 === рдЗрд╕ рдорд╢реАрди рдкрд░ рд░реЗрдбрд┐рд╕ рдЗрдВрд╕реНрдЯреЗрдВрд╕ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддрд╛ рд╣реИред

рдпрд╣ рдЖрдкрдХреЗ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛ socket.io рдХреЗ рд╕рд╛рде рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕рдорд╕реНрдпрд╛ рдкреНрд░рддреАрдд рд╣реЛрддреА рд╣реИред рдХреНрдпрд╛ рдЖрдкрдиреЗ рдХрднреА рджреЛрдиреЛрдВ рдХреЛ рдПрдХ рд╕рд╛рде рдЯреЗрд╕реНрдЯ рдХрд┐рдпрд╛?

@newleafdigital : рдЕрдм рдореБрдЭреЗ рдкрддрд╛ рдЪрд▓ рдЧрдпрд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рд╣реЛ рд░рд╣рд╛ рд╣реИред рдореИрдВрдиреЗ рдЖрдкрдХреЗ рдХреЛрдб рдореЗрдВ рдЧрд╣рд░рд╛рдИ рд╕реЗ рдЦреБрджрд╛рдИ рдирд╣реАрдВ рдХреА рд▓реЗрдХрд┐рди рдореИрдВ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд╛ рдмрд┐рд▓реНрдХреБрд▓ рд╡рд░реНрдгрди рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ:

рдореЗрд░реЗ рд╡рд░реНрддрдорд╛рди рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдореЗрдВ (рдорд╢реАрди 1 рдкрд░ рдиреЛрдб-рдРрдк, рдорд╢реАрди 2 рдкрд░ рд░реЗрдбрд┐рд╕_рдорд╛рд╕реНрдЯрд░ 2, рдорд╢реАрдиреЛрдВ рдкрд░ рд░реЗрдбрд┐рд╕_рд╕реНрд▓реЗрд╡реНрд╕ 3 + 4, рдорд╢реАрдиреЛрдВ рдкрд░ рд░реЗрдбрд┐рд╕_рд╕реЗрдВрдЯрд┐рдирд▓реНрд╕ 2 + 3 + 4) рдЖрдкрдХрд╛ рдХреЛрдб рдХреЗрд╡рд▓ рддрднреА рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдЬрдм рдореИрдВ рдорд╢реАрди 3 + 4 рдкрд░ рд╕реНрд▓реЗрд╡_рд╕реЗрдВрдЯрд┐рдирд▓реНрд╕ рдореЗрдВ рд╕реЗ рдПрдХ рд╕реЗ рдЬреБрдбрд╝рддрд╛ рд╣реВрдВред рдЕрдЧрд░ рдореИрдВ рдорд╛рд╕реНрдЯрд░ (рдорд╢реАрди 2) рдкрд░ рдкреНрд░рд╣рд░реА рд╕реЗ рдЬреБрдбрд╝рддрд╛ рд╣реВрдВ рддреЛ рдпрд╣ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред

рдЬрдм рдореИрдВ рджреЛ рдЧреБрд▓рд╛рдореЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╕реЗ рдЬреБрдбрд╝рддрд╛ рд╣реВрдВ рддреЛ рд╕рд┐рд╕реНрдЯрдо рд╕рд╣реА рдврдВрдЧ рд╕реЗ рд▓реЙрдЧ рдХрд░рддрд╛ рд╣реИ:

debug connected to sentinel listener
debug connected to sentinel talker
debug new master info { host: 'the.ip.of.master', port: '6379' }
debug Changing master from 127.0.0.1:9999 to the.ip.of.master:6379
debug New master is ready [Yippieee!]

рдЬрдм рдореИрдВ рдорд╛рд╕реНрдЯрд░ рдкрд░ рдкреНрд░рд╣рд░реА рд╕реЗ рдЬреБрдбрд╝рддрд╛ рд╣реВрдВ рддреЛ рдпрд╣ рдХрд╣рддрд╛ рд╣реИ (рдФрд░ рдмрд╛рдж рдореЗрдВ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ):

debug connected to sentinel listener
debug connected to sentinel talker
debug new master info { host: '127.0.0.1', port: '6379' } 
debug Changing master from 127.0.0.1:9999 to 127.0.0.1:6379

рдФрд░ рдирд╣реАрдВ debug New master is ready ред рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдЬрдм рдореИрдВ рдорд╛рд╕реНрдЯрд░ рдХреЗ рдкреНрд░рд╣рд░реА рд╕реЗ рдЬреБрдбрд╝рддрд╛ рд╣реВрдВ, рддреЛ рдорд╛рд╕реНрдЯрд░ рдХреЛ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рд╕рдВрдмреЛрдзрд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ ( рд╕рд╣реА рдЖрдИрдкреА рдХреЗ рдмрдЬрд╛рдп 127.0.0.1 )ред

рдпрджрд┐ рдкреНрд░рд╣рд░реА рдЕрдиреНрдп рдорд╢реАрдиреЛрдВ рдкрд░ рдЪрд▓рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд░реЗрдбрд┐рд╕ рдХреА рдорд╢реАрдиреЗрдВ (рдпрд╛рдиреА рдиреЛрдб-рдРрдк рдЬреИрд╕реА рд╣реА рдорд╢реАрди рдкрд░ - рдЬреИрд╕рд╛ рдХрд┐ рдореЗрд░реЗ рдкрд╣рд▓реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдореЗрдВ рд╣реИ) рддреЛ рдпрд╣ рдХреЗрд╡рд▓ рддрднреА рдХрд╛рдо рдХрд░рддреА рд╣реИ, рдЬрдм рдкреНрд░рд╣рд░реА рджрд╛рд╕реЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╕реЗ рдЬреБрдбрд╝рд╛ рд╣реЛ (рдФрд░ рдирд╣реАрдВ рдЧреБрд░реБрдЬреА)ред

рдФрд░...рдПрдХ рд╕рд╛рде wird socket.io/RedisStore рдпрд╣ рдХрд┐рд╕реА рднреА рддрд░рд╣ рд╕реЗ (рдореЗрд░реА рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ) рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рднрд▓реЗ рд╣реА рдореИрдВ рджрд╛рд╕реЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдкрд░ рдкреНрд░рд╣рд░реА рд╕реЗ рдЬреБрдбрд╝рддрд╛ рд╣реВрдВред

+1 рдпрд╣ рдПрдХ рдЕрд▓рдЧ рдореЙрдбреНрдпреВрд▓ рдХреЗ рд░реВрдк рдореЗрдВ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рдХреЗ рдмрджрд▓рдиреЗ рдХреА рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИред

рдпрджрд┐ рдЖрдк рд╡рд┐рдХреА рдореЗрдВ рдЕрдкрдиреЗ рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рдЯреИрдЧ рдХреЗ рд╕рд╛рде рдЖрдПрдВ рдЬреИрд╕реЗ #redis-sentinel рдФрд░ рдлрд┐рд░
рдореИрдВ README рдореЗрдВ рдЙрд╕ рдЯреИрдЧ рдХреЗ рд╕рд╛рде рд╕рднреА рдкреИрдХреЗрдЬреЛрдВ рдореЗрдВ рдПрдХ рд▓рд┐рдВрдХ рдЬреЛрдбрд╝реВрдВрдЧрд╛ рдЬреИрд╕реЗ https://npmjs.org/browse/keyword/redis-sentinel

рдпрд╣рд╛рдВ рд╕рднреА рдлреАрдбрдмреИрдХ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рдФрд░ рдЦреЗрдж рд╣реИ рдХрд┐ рдореБрдЭреЗ рдЧрд╣рд░рд╛рдИ рд╕реЗ рдЙрддреНрддрд░ рджреЗрдиреЗ рдХрд╛ рдореМрдХрд╛ рдирд╣реАрдВ рдорд┐рд▓рд╛ред рдореИрдВрдиреЗ рдЗрд╕рдХреЗ рд▓рд┐рдП рдЕрдЧрд▓реЗ рд╕рдкреНрддрд╛рд╣ (4 рдорд╛рд░реНрдЪ) рдХреЗ рд▓рд┐рдП рд╕рдордп рдЖрд╡рдВрдЯрд┐рдд рдХрд┐рдпрд╛ рд╣реИред

@DTrejo , рдЖрдк рдЗрд╕реЗ рдЕрдкрдирд╛ рдореЙрдбреНрдпреВрд▓ рдмрдирд╛рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕рд╣реА рд╣реИрдВ, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореИрдВ рдРрд╕рд╛ рдХрд░реВрдБрдЧрд╛ (рдЕрдЧрд▓реЗ рд╕рдкреНрддрд╛рд╣ рднреА)ред

рд╣рд╛рдп рджреЛрд╕реНрддреЛрдВ

рдореИрдВ рдЗрд╕реЗ рднреА рджреЗрдЦ рд░рд╣рд╛ рд╣реВрдВ (рдореБрдЭреЗ рдкреНрд░рд╣рд░реА рдХреА рд╕реВрдЪреА рд╕реЗ рдорд╛рд╕реНрдЯрд░ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рдкреБрд░рд╛рдиреЗ рдХреЗ рдиреАрдЪреЗ рдЬрд╛рдиреЗ рдкрд░ рдПрдХ рдирдП рдорд╛рд╕реНрдЯрд░ рд╕реЗ рдлрд┐рд░ рд╕реЗ рдХрдиреЗрдХреНрдЯ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП)ред

рдореИрдВрдиреЗ рдореМрдЬреВрджрд╛ RedisClient рд░реАрдХрдиреЗрдХреНрд╢рди рд╕рд╛рдорд╛рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдФрд░ рд╡рд╛рдВрдЫрд┐рдд рд╣реЛрд╕реНрдЯ/рдкреЛрд░реНрдЯ рдХреЛ

рдЗрд╕ рдкрджреНрдзрддрд┐ рдХреЗ рдлрд╛рдпрджреЗ рдпрд╣ рд╣реИрдВ рдХрд┐ рдпрд╣ рдиреЛрдб_рд░реЗрдбрд┐рд╕ рдкрд░ рд╕рд┐рд░реНрдл рдПрдХ рдЖрд╡рд░рдг рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЙрд╕ рдХреЛрдб рдХреЗ рд╕рд╛рде рдиреАрдЪреЗ рдЙрддрд░рдиреЗ рдФрд░ рдЧрдВрджрд╛ рдХрд░рдиреЗ рдХреА рдХреЛрдИ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдЪреВрдВрдХрд┐ рдЧреНрд░рд╛рд╣рдХ рд▓реМрдЯрд╛ рдПрдХ (рдереЛрдбрд╝рд╛ рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд) RedisClient рддреЛ рдЗрд╕реЗ рдореМрдЬреВрджрд╛ рдХреЛрдб рдХреЗ рд╕рд╛рде рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рд╕реНрд▓реЙрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдФрд░ рдЕрдВрдд рдореЗрдВ рдпрд╣ рдореМрдЬреВрджрд╛ рдХреЛрдб рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЖрд╕рд╛рди рд▓рдЧрддрд╛ рд╣реИ

рдореЗрд░рд╛ рдХреЛрдб рдпрд╣рд╛рдВ рд╣реИ: https://github.com/ortoo/node-redis-sentinel - рдпрд╣ рдЗрд╕ рд╕рдордп рдХрд╛рдлреА рд╕реАрдорд┐рдд рд╣реИ, рд▓реЗрдХрд┐рди рдХрд╛рдлреА рдПрдХреНрд╕реНрдЯреЗрдВрд╕рд┐рдмрд▓ рд▓рдЧрддрд╛ рд╣реИред рдХреЛрдИ рднреА рд╡рд┐рдЪрд╛рд░/рджрд╛рд╡рд╛ рдЬреЛ рдореИрдВ рдЧрд▓рдд рд░рд╛рд╕реНрддреЗ рдкрд░ рдЬрд╛ рд░рд╣рд╛ рд╣реВрдВ рдЙрд╕рдХреА рд╕рд░рд╛рд╣рдирд╛ рдХреА рдЬрд╛рдПрдЧреАред

рд╡рд░реНрддрдорд╛рди рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛:

  • рдкреНрд░рд╣рд░реА рд╕рдорд╛рдкрди рдмрд┐рдВрджреБрдУрдВ рдФрд░ рдорд╛рд╕реНрдЯрд░ рдирд╛рдо рдХреА рд╕реВрдЪреА рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░реЗрдВ
  • рдПрдХ RedisClient рд╡рд╛рдкрд╕ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ рдЬреЛ рдорд╛рд╕реНрдЯрд░ рд╕реЗ рдЬреБрдбрд╝ рдЬрд╛рдПрдЧрд╛
  • рдпрджрд┐ рд╡рд░реНрддрдорд╛рди рдорд╛рд╕реНрдЯрд░ рдорд░ рдЬрд╛рддрд╛ рд╣реИ рддреЛ RedisClient рдлрд┐рд░ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдЧрд╛ (рдкреНрд░рд╣рд░реА рд╕реЗ рдорд╛рд╕реНрдЯрд░ рдХреЛ рд╣рд▓ рдХрд░рдирд╛)

:+1: рдкреНрд░рд╣рд░реА рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдкрд░ рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рд╕рднреА рд▓реЛрдЧреЛрдВ рдХреЛ! рдореБрдЭреЗ рдЕрднреА рддрдХ рджреЗрдЦрдиреЗ рдХрд╛ рдореМрдХрд╛ рдирд╣реАрдВ рдорд┐рд▓рд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВ рдЗрд╕реЗ рдЖрдЬрдорд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрддреНрд╕реБрдХ рд╣реВрдВред

@jamessharp , рдиреЛрдб-рд░реЗрдбрд┐рд╕-рд╕реЗрдВрдЯрд┐рдирд▓ рдкрд░ рдЕрдЪреНрдЫрд╛ рдХрд╛рдоред рдореИрдВ рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдХрд┐ рдХреНрдпрд╛ рдореБрдЭреЗ рдЖрдкрдХрд╛ рдЕрдкрдирд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдпрд╛ рдЕрдкрдиреЗ рд╕реЗрдВрдЯрд┐рдирд▓ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛ рдЕрдкрдиреЗ рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдПрдХ рдЪреАрдЬ рдЬреЛ рдореИрдВ рдЖрдкрдХреЗ рд╕рд╛рде рдирд╣реАрдВ рд╕рдордЭ рд╕рдХрддрд╛, рдХреНрдпрд╛ рдЗрд╕рдХрд╛ рдорддрд▓рдм рдПрдХ рдРрд╕рд╛ рдХреНрд▓рд╛рдЗрдВрдЯ рдмрдирд╛рдирд╛ рд╣реИ рдЬреЛ рдкрд╛рд░рджрд░реНрд╢реА рд░реВрдк рд╕реЗ рдлреЗрд▓рдУрд╡рд░/рд░реАрдХрдиреЗрдХреНрдЯ рдХреЛ рд╕рдВрднрд╛рд▓рддрд╛ рд╣реИ? рдпрд╛ рдХреНрдпрд╛ рдРрдк рдХреЛ 3 рдХреНрд▓рд╛рдЗрдВрдЯ (рдорд╛рд╕реНрдЯрд░, рд╕реНрд▓реЗрд╡, рд╕реЗрдВрдЯреАрдиреЗрд▓) рдХреЛ рддреБрд░рдВрдд рдЪрд╛рд▓реВ рдХрд░рдиреЗ рдФрд░ рд╕рдХреНрд░рд┐рдп рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЗ рдмреАрдЪ рд╕реНрд╡рд┐рдЪ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ рдЬрдм рдпрд╣ рд╡рд┐рдлрд▓ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ?

рдЙрдкрд░реЛрдХреНрдд рдЖрдкрдХреЗ рд╡рд┐рд╡рд░рдг рд╕реЗ, рдпрд╣ рдкреВрд░реНрд╡ рдХреА рддрд░рд╣ рд▓рдЧрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдХреЛрдб рдХреЛ рджреЗрдЦрдХрд░ рдФрд░ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддреЗ рд╣реБрдП, рдпрд╣ рдмрд╛рдж рд╡рд╛рд▓реЗ рдХреА рддрд░рд╣ рд▓рдЧрддрд╛ рд╣реИред

рдзрдиреНрдпрд╡рд╛рдж!

рдзрдиреНрдпрд╡рд╛рджред рдпрд╣ рдПрдХ рдПрдХрд▓ рдХреНрд▓рд╛рдЗрдВрдЯ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИ рдЬреЛ рдкрд╛рд░рджрд░реНрд╢реА рд░реВрдк рд╕реЗ рд╡рд┐рдлрд▓рддрд╛/рдкреБрдирдГ рдХрдиреЗрдХреНрдЯ рдХрд░рддрд╛ рд╣реИред рддреАрди рдХреНрд▓рд╛рдЗрдВрдЯ рдЬреЛ рдЖрдкрдХреЗ рдкрд╛рд╕ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ (рдорд╛рд╕реНрдЯрд░/рдЧреБрд▓рд╛рдо/рд╕реЗрдВрдЯрд┐рдирд▓) рдЖрдкрдХреЛ рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХрд╛рд░реЛрдВ рдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдХреЗ рд▓рд┐рдП рд▓рдЧрд╛рддрд╛рд░ рдХрдиреЗрдХреНрд╢рди рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИрдВред рдЗрд╕рд▓рд┐рдП рдпрджрд┐ рдЖрдк рджрд╛рд╕ рд╕реЗ рдкрдврд╝рдиреЗ рдореЗрдВ рдкреНрд░рд╕рдиреНрди рд╣реИрдВ рддреЛ рдЖрдк рдПрдХ рджрд╛рд╕ рдХрдиреЗрдХреНрд╢рди рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ (рдЬреЛ рдПрдХ рдирдП рджрд╛рд╕ рдЙрджрд╛рд╣рд░рдг рд╕реЗ рдкрд╛рд░рджрд░реНрд╢реА рд░реВрдк рд╕реЗ рдкреБрди: рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдЧрд╛ рдпрджрд┐ рдЖрдк рдЬрд┐рд╕ рддрдХ рдкрд╣реБрдВрдЪ рд░рд╣реЗ рд╣реИрдВ рд╡рд╣ рдиреАрдЪреЗ рдЪрд▓рд╛ рдЬрд╛рддрд╛ рд╣реИ)ред рдпрджрд┐ рдЖрдкрдХреЛ рдорд╛рд╕реНрдЯрд░ рд╕реЗ рд╕реНрдерд╛рдпреА рдХрдиреЗрдХреНрд╢рди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ (рдЬреЛ рднреА рд╕рд░реНрд╡рд░ рд╣реЛрддрд╛ рд╣реИ) рддреЛ рдЖрдк рдХреЗрд╡рд▓ рдорд╛рд╕реНрдЯрд░ рдХреНрд▓рд╛рдЗрдВрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдпрджрд┐ рдЖрдк рд╕реЗрдВрдЯреАрдиреЗрд▓ рдЗрдВрд╕реНрдЯреЗрдВрд╕ рд╕реЗ рд╕реАрдзрд╛ рдХрдиреЗрдХреНрд╢рди рдЪрд╛рд╣рддреЗ рд╣реИрдВ (рдЬрд┐рд╕реЗ рдлрд┐рд░ рд╕реЗ рдкрд╛рд░рджрд░реНрд╢реА рд░реВрдк рд╕реЗ рд╡рд┐рдлрд▓ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП) рддреЛ рдЖрдк рд╕реЗрдВрдЯреАрдиреЗрд▓ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛ рдкрдХрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВред

рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИред

рдмреЗрд╢рдХ рдЕрднреА рднреА рдХрд╛рдлреА рдХрд╛рдо рд╣реИ рдЬрд┐рд╕реЗ рдХрд░рдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ рд▓реЗрдХрд┐рди рдпрд╣ рдЗрд╕ рд╕рдордп рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдлреА рдЕрдЪреНрдЫрд╛ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ ...

рддреНрд╡рд░рд┐рдд рдЙрддреНрддрд░ @jamessharp рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред рдмрдбрд╝реЗ рд▓рд╛рдкрддрд╛ рдЯреБрдХрдбрд╝реЗ рдХреНрдпрд╛ рд╣реИрдВ?

рдореИрдВрдиреЗ рдпрд╣ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣рд╛рдВ рдПрдХ рдкрд░реАрдХреНрд╖рдг рд▓рд┐рдЦрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ - https://gist.github.com/newleafdigital/5469571ред рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЪрд▓рд╛рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рдЖрдк рдПрдХ рдорд╛рд╕реНрдЯрд░+рд╕реНрд▓реЗрд╡+рд╕реЗрдВрдЯрд┐рдирд▓ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ; рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдорд╛рд╕реНрдЯрд░ рд╕реЗ рдЬреБрдбрд╝рддреА рд╣реИ, рдФрд░ рд╣рд░ рд╕реЗрдХрдВрдб рдПрдХ рд╣реИрд╢ рдореЗрдВ рдПрдХ рд╡реГрджреНрдзрд┐рд╢реАрд▓ рдХреБрдВрдЬреА рдЬреЛрдбрд╝рддрд╛ рд╣реИред 5 рд╕реЗрдХрдВрдб рдХреЗ рдмрд╛рдж, рдЧреБрд░реБ рдХреЛ рдорд╛рд░ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдпрд╣ рджреЗрдЦрдиреЗ рдХрд╛ рд╡рд┐рдЪрд╛рд░ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдХреБрдЫ рдЦреЛ рдЧрдпрд╛ рд╣реИред рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдорд╛рд╕реНрдЯрд░ рдХреНрд▓рд╛рдЗрдВрдЯ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХрднреА рднреА рдирдП рдорд╛рд╕реНрдЯрд░ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдореИрдВ рдЗрд╕реЗ рдЧрд▓рдд рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рдпрд╛ рдпрджрд┐ рдпрд╣ рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИред

рдлреЗрд▓рдУрд╡рд░ рдХреЗ рджреМрд░рд╛рди, рдХреНрдпрд╛ рдиреБрдХрд╕рд╛рди рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдбреЗрдЯрд╛ рдХреЛ рдмрдлрд░ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рдпрд╛ I/O рдлреЗрд▓рдУрд╡рд░ рдХреЗ рджреМрд░рд╛рди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рдЦреЛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП?

рдзрдиреНрдпрд╡рд╛рдж

рдХреБрдЫ рд╡рд┐рдЪрд╛рд░ рдпрд╣ рдХреНрдпреЛрдВ рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд░рд╣реЗ рд╣реИрдВ:

  • рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдкреНрд░рд╣рд░реА рд╡рд┐рдиреНрдпрд╛рд╕ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рддрдм рддрдХ рд╡рд┐рдлрд▓ рдирд╣реАрдВ рд╣реЛрдЧрд╛ рдЬрдм рддрдХ рдХрд┐ рдорд╛рд╕реНрдЯрд░ 30 рд╕реЗрдХрдВрдб рдХреЗ рд▓рд┐рдП рдиреАрдЪреЗ рди рд╣реЛ (рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ)
  • рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЗ рдкреБрди: рд╕рдВрдпреЛрдЬрди рдХреЗ рдкреНрд░рдпрд╛рд╕реЛрдВ рдХреЗ рдмреАрдЪ рдХрд╛ рд╕рдордп рддреЗрдЬреА рд╕реЗ рдмрдВрдж рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ рдЗрд╕рд▓рд┐рдП рдкреБрди: рдХрдиреЗрдХреНрд╢рди рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╣реЛрдиреЗ рд╕реЗ рдПрдХ рдорд┐рдирдЯ рдкрд╣рд▓реЗ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ

рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдбреЗрдЯрд╛ рдмрдлрд╝рд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВред рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рд▓реЗрдХрд┐рди рд╡реНрдпрд╡рд╣рд╛рд░ рд╡рд╣реА рд╣реЛрдЧрд╛ рдЬреЛ рдХреБрдЫ рднреА рд╣реЛрддрд╛ рд╣реИ рдЬрдм рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдХреНрд▓рд╛рдЗрдВрдЯ рдлрд┐рд░ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддрд╛ рд╣реИред

рдореБрдЦреНрдп рд▓рд╛рдкрддрд╛ рдЯреБрдХрдбрд╝рд╛ рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛ рд░рд╣рд╛ рд╣реИ рдХрд┐ рдорд╛рд╕реНрдЯрд░ рдХреЛ рдиреАрдЪреЗ рдЬрд╛рдиреЗ рдХреЗ рдмрд┐рдирд╛ рдмрджрд▓ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ (рдпрд╛рдиреА рдореИрдиреНрдпреБрдЕрд▓ рд╡рд┐рдлрд▓рддрд╛)ред рд▓реЗрдХрд┐рди рдкреБрди: рд╕рдВрдпреЛрдЬрди рдХреЛ рдпрдерд╛рд╕рдВрднрд╡ рддреЗрдЬрд╝ рдмрдирд╛рдиреЗ рдкрд░ рдХреБрдЫ рдФрд░ рдХрд╛рдо рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдореИрдВрдиреЗ рддреБрд▓рдирд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣рдорд╛рд░реЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд╕рд╛рде рдПрдХ рдкрд░реАрдХреНрд╖рдг рдЬреЛрдбрд╝рд╛ред рдкрд░рд┐рдгрд╛рдо рд╕рд╛рд░ рдореЗрдВ рд╣реИрдВ ред рд╡рд┐рдлрд▓рддрд╛ рдХреЗ рджреМрд░рд╛рди рдХрд┐рдП рдЧрдП рд╕рднреА I/O рдиреЛрдб-рд░реЗрдбрд┐рд╕-рд╕реЗрдВрдЯрд┐рдирд▓ рдХреЗ рд╕рд╛рде рдЦреЛ рдЬрд╛рддреЗ рд╣реИрдВ, рдФрд░ рд╣рдорд╛рд░реЗ (рдЕрдзрд┐рдХ рдереЛрдХ) рд╕рдорд╛рдзрд╛рди рдХреЗ рд╕рд╛рде рдХреЛрдИ рдбреЗрдЯрд╛ рдирд╣реАрдВ

рдореБрдЭреЗ рдЖрдкрдХреЗ рд╕рдорд╛рдзрд╛рди рдХреА рд╕рд╛рджрдЧреА рдкрд╕рдВрдж рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдЖрд╢реНрдЪрд░реНрдп рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдпрд╣ рдЙрди рд▓рдХреНрд╖реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИ рдЬрд┐рдиреНрд╣реЗрдВ рд╣рдо рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдЙрдореНрдореАрдж рдХрд░ рд░рд╣реЗ рдереЗ:

  • redisClient рдХреЗ рд▓рд┐рдП рдкрд╛рд░рджрд░реНрд╢реА, рдбреНрд░реЙрдк-рдЗрди рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди
  • рд╕рднреА рд░реЗрдбрд┐рд╕ рдХреНрд▓рд╛рдЗрдВрдЯ рд╕рдВрдЪрд╛рд▓рди рдХреЛ рд╕рдВрднрд╛рд▓рддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдкрд╛рд░рджрд░реНрд╢реА рд░реВрдк рд╕реЗ рдкрдм / рдЙрдк рд╢рд╛рдорд┐рд▓ рд╣реИрдВ
  • рд╡рд┐рдлрд▓рддрд╛ рдХреЗ рджреМрд░рд╛рди рдбреЗрдЯрд╛ рдХреА рдХреЛрдИ рд╣рд╛рдирд┐ рдирд╣реАрдВ

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

рдЕрдВрддрд░рд┐рдХреНрд╖ рдХреЛ рд╕рдореГрджреНрдз рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж!

рд╣рд╛рдБ рдЖрдкрдХреЗ рд▓рдХреНрд╖реНрдп рд╣рд╛рдЬрд┐рд░ рд╣реИрдВред рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЙрдирдореЗрдВ рд╕реЗ рдмрд╣реБрдд рд╕реЗ рдореВрд▓ node_redis рдХреНрд▓рд╛рдЗрдВрдЯ рдореЗрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЙрдкрдпреЛрдЧреА рд╣реЛрдВрдЧреЗред рдЬрдм рдпрд╣ рдиреАрдЪреЗ рдЖрддрд╛ рд╣реИ рддреЛ рдПрдХ рдПрдХрд▓ рдЙрджрд╛рд╣рд░рдг (рдпрд╛рдиреА рдЬреЛ рдиреЛрдб_рд░реЗрдбрд┐рд╕ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рд╕рдВрднрд╛рд▓рддрд╛ рд╣реИ) рдФрд░ рдПрдХ рдкреНрд░рд╣рд░реА рдирд┐рдпрдВрддреНрд░рд┐рдд рдХреНрд▓рд╕реНрдЯрд░ рдореЗрдВ рдПрдХ рдирдП рдорд╛рд╕реНрдЯрд░/рджрд╛рд╕ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рдлрд▓рддрд╛ рдХреЗ рдмреАрдЪ рдХреЛрдИ рдЕрдВрддрд░ рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

рдПрдХ рдЕрд▓рдЧ рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рдлреЗрд▓рдУрд╡рд░ рдФрд░ рдкрдм/рдЙрдк рджреГрдврд╝рддрд╛ рдХреЗ рджреМрд░рд╛рди рдбреЗрдЯрд╛ рдХреЗ рдиреБрдХрд╕рд╛рди рдХреЗ рд▓рд┐рдП рддрд░реНрдХ рдбрд╛рд▓рдиреЗ рдХреЗ рдмрдЬрд╛рдп, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдореЗрдВ рдЗрд╕реЗ рдореБрдЦреНрдп рдХреНрд▓рд╛рдЗрдВрдЯ рдореЗрдВ рд░рдЦрдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рдлрд┐рд░ рд╕реЗрдВрдЯреАрдиреЗрд▓ рд╡рд┐рд╢рд┐рд╖реНрдЯ рддрд░реНрдХ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрд▓рдЧ рдореЙрдбреНрдпреВрд▓ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП (рдЬрд┐рд╕рдХреА рддрд░реНрдЬ рдкрд░ рдореИрдВрдиреЗ рдиреЛрдб-рд░реЗрдбрд┐рд╕-рд╕реЗрдВрдЯрд┐рдирд▓ рдореЗрдВ рдХрд┐рдпрд╛ рд╣реИ)ред рдЗрд╕рдХреА рдЬреАрдд-рдЬреАрддред рдпрд╣ рдПрдХ рдмреЗрд╣рддрд░ рдиреЛрдб_рд░реЗрдбрд┐рд╕ рдХреНрд▓рд╛рдЗрдВрдЯ рдФрд░ рдПрдХ рд╕рд░рд▓ рдкреНрд░рд╣рд░реА рдореЙрдбреНрдпреВрд▓ рдмрдирд╛рддрд╛ рд╣реИред

рдореИрдВрдиреЗ рдХреБрдЫ рдЪреАрдЬреЛрдВ рдХреЛ рдкреВрд░рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрд░ node_redis рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЗ рд░рд┐рдлреИрдХреНрдЯрд░ рдкрд░ рдХрд╛рдо рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рджрд┐рдпрд╛ рд╣реИ: рд╡рд░реНрддрдорд╛рди index.js рдХреЛ рддреЛрдбрд╝ рджреЗрдВ рддрд╛рдХрд┐ рдХрд╛рдо рдХрд░рдирд╛ рдереЛрдбрд╝рд╛ рдЖрд╕рд╛рди рд╣реЛ, рд▓реЗрдХрд┐рди рдкреНрд▓рдЧрдЗрди рдХреЗ рд▓рд┐рдП рдПрдХ рддрдВрддреНрд░ рдореЗрдВ рднреА рдЬреЛрдбрд╝рдирд╛ рдЗрд╕рдХреЗ рдЬреИрд╕рд╛ред рдореИрдВ рд╕рд╣рдордд рд╣реВрдВ рдХрд┐ рдЬрд┐рд╕ рддрд░рд╣ рд╕реЗ node_redis рдХрдиреЗрдХреНрд╢рди рд░реБрдХрд╛рд╡рдЯреЛрдВ рдХреЗ рд▓рд┐рдП рдХрдорд╛рдВрдб рд░рд┐рдкреНрд▓реЗ рдФрд░ рдСрдлрд╝рд▓рд╛рдЗрди рдХрддрд╛рд░ рдХрд╛ рдкреНрд░рдмрдВрдзрди рдХрд░рддрд╛ рд╣реИ, рдкреНрд░рд╣рд░реА рд╡реНрдпрд╡рд╣рд╛рд░ рд╢рд╛рдпрдж рдореБрдЦреНрдп рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЗ рд╕рд╛рде рд╕реАрдзреЗ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

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

рдореИрдВ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЗ рд▓рд┐рдП рдЬрд▓реНрдж рд╣реА рдПрдХ рд╢рд╛рдЦрд╛ рдХреЛ рдЖрдЧреЗ рдмрдврд╝рд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реВрдВрдЧрд╛ред

рдпрд╣ рд╕рдм рдЕрдЪреНрдЫрд╛ рд▓рдЧрддрд╛ рд╣реИ рд▓реЗрдХрд┐рди рдмрд╣реБрдд рднрд╛рд░реА рд╣реИред рдиреЛрдб_рд░реЗрдбрд┐рд╕ рдХрд╛ рд╣рдорд╛рд░рд╛ рд╕рдВрдпреЛрдЬрди рдЪрд░рдгреЛрдВ рдХреЛ рд╕рдВрднрд╛рд▓рддрд╛ рд╣реИред рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдкреНрд▓рдЧ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рдХрдиреЗрдХреНрд╢рди рдкреНрд░рдмрдВрдзрдХ рдЖрд╡рд╢реНрдпрдХ рд╣реИред

рджрд░рдЕрд╕рд▓, рд╕реБрдзрд╛рд░: рдХрд╛рдВрдЯреЗ рдореЗрдВ рд╕рднреА рдЖрд╡рд╢реНрдпрдХ рдЯреБрдХрдбрд╝реЗ рдирд╣реАрдВ рд╣реЛрддреЗ рд╣реИрдВ; рд╡реЗ рдПрдХ рдФрд░ рдкреНрд░рддрд┐ рдореЗрдВ рдореМрдЬреВрдж рд╣реИрдВ рдЬрд┐рд╕реЗ рдореБрдЭреЗ рдЙрд╕ рдХрд╛рдВрдЯреЗ рдореЗрдВ рд╡рд┐рд▓рдп рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдореИрдВ рдЗрд╕реЗ рд╕реЛрдорд╡рд╛рд░ (рдХрд▓) рдХреЛ рдХрд░реВрдВрдЧрд╛ред

рдореБрдЭреЗ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЖрдк рднрд╛рд░реА рд╕реЗ рдХреНрдпрд╛ рдорддрд▓рдм рд░рдЦрддреЗ рд╣реИрдВ - рд▓рдХреНрд╖реНрдп рдПрдХ рд▓рд╛рдЗрдЯрд░ рдХреЛрдбрдмреЗрд╕ рдХреЛ рдкреНрд░реЛрддреНрд╕рд╛рд╣рд┐рдд рдХрд░рдирд╛ рд╣реИ рдЬрд┐рд╕рд╕реЗ рдЙрдиреНрд╣реЗрдВ рдХреЛрд░ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рдмрдирдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рдХрд┐рдП рдмрд┐рдирд╛ рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЛ рдкреНрд▓рдЧ рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред

рдореИрдВрдиреЗ рдЕрдкрдиреЗ рдкреНрд░рд╣рд░реА рдХреНрд▓рд╛рдЗрдВрдЯ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ рдПрдХ рдирдП рдореЙрдбреНрдпреВрд▓, рд░реЗрдбрд┐рд╕-рд╕реЗрдВрдЯрд┐рдирд▓-рдХреНрд▓рд╛рдЗрдВрдЯ рдореЗрдВ рдЕрд▓рдЧ рдХрд┐рдпрд╛ :

https://github.com/DocuSignDev/node-redis-sentinel-client
https://npmjs.org/package/redis-sentinel-client

рдпрд╣ рдЕрднреА рднреА node_redis рдореЗрдВ рдХреБрдЫ рдорд╛рдореВрд▓реА рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ (рдЗрд╕рд▓рд┐рдП рдпрд╣ рд╣рдорд╛рд░реЗ fork рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ); рдореИрдВ рдХреЗрд╡рд▓ рдЙрди рдЖрд╡рд╢реНрдпрдХ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЗ рд▓рд┐рдП рдХрд╛рдВрдЯрд╛ рдЬреЛрдбрд╝реВрдВрдЧрд╛, рдФрд░ рдЙрдирдХреЗ рд▓рд┐рдП рдкреАрдЖрд░ рдЬрдорд╛ рдХрд░реВрдВрдЧрд╛ред

( @brycebaril , рдореЗрд░рд╛ рдореВрд▓ рд╡рд┐рдЪрд╛рд░ рдпрд╣ рдерд╛ рдХрд┐ рдПрдХ рдкреНрд▓рдЧ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рдХрдиреЗрдХреНрд╢рди рдкреНрд░рдмрдВрдзрдХ рдмреЗрдорд╛рдиреА/рдУрд╡рд░рдХрд┐рд▓ рд╣реЛрдЧрд╛ред рдореИрдВ рд╢рд╛рдпрдж рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЧрд▓рдд рд╣реВрдВред рдореИрдВ рджреЗрдЦреВрдВрдЧрд╛ рдХрд┐ рдПрдХ рдкреНрд░рд╣рд░реА рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛ рдереЛрдбрд╝реА рджреЗрд░ рдореЗрдВ рд╕рдорд░реНрдерди рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдиреЛрдб_рд░реЗрдбрд┐рд╕ рдХреЗ рд▓рд┐рдП рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреМрди рд╕реЗ рдкрд░рд┐рд╡рд░реНрддрди рдЖрд╡рд╢реНрдпрдХ рд╣реИрдВред)

рдореИрдВрдиреЗ redis-sentinel-client рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рджреЛ рдкреБрд▓ рдЕрдиреБрд░реЛрдз рд╕рдмрдорд┐рдЯ рдХрд┐рдП рд╣реИрдВ:

https://github.com/mranney/node_redis/pull/428 - рдирд┐рд░реНрдпрд╛рдд рдмрд░реНрддрди рдФрд░ рдЖрджреЗрд╢ рд╕рд╛рдЭрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП (рдкреНрд░рд╣рд░реА рдХреНрд▓рд╛рдЗрдВрдЯ, рдпрд╛ рдЕрдиреНрдп рдХреЗ рд╕рд╛рде) - рдпрд╣ рдЧреИрд░-рдмреНрд░реЗрдХрд┐рдВрдЧ/рдХрдо-рдкреНрд░рднрд╛рд╡ рд╣реИ рдФрд░ рдЗрд╕ рд╡рд┐рд╢реЗрд╖ рдЙрдкрдпреЛрдЧ рдХреА рдкрд░рд╡рд╛рд╣ рдХрд┐рдП рдмрд┐рдирд╛ рдиреЛрдб_рд░реЗрдбрд┐рд╕ рдХреЛ рдмреЗрд╣рддрд░ рдмрдирд╛рддрд╛ рд╣реИ .

https://github.com/mranney/node_redis/pull/429 - рдкреНрд░рд╣рд░реА рд╕рдорд░реНрдерди рдХреЗ рд▓рд┐рдП рд▓рдЪреАрд▓реЗ рдХрдиреЗрдХреНрд╢рди - рдпрд╣ рд╕рдВрднрд╛рд╡рд┐рдд рд░реВрдк рд╕реЗ рдЕрдзрд┐рдХ рдмреНрд░реЗрдХрд┐рдВрдЧ/рд╡рд┐рд╡рд╛рджрд╛рд╕реНрдкрдж рд╣реИ рдФрд░ рдкреНрд▓рдЧ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рдХрдиреЗрдХреНрд╢рди рдкреНрд░рдмрдВрдзрдХреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЙрдкрд░реЛрдХреНрдд рдзрд╛рдЧреЗ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИред

рдкреНрд░рд╣рд░реА рд╕рдорд░реНрдерди рдкрд░ @tanguylebarzic рдХреЗ рд╢реБрд░реБрдЖрддреА рдХрд╛рдо рдФрд░ рдиреЛрдб_рд░реЗрдбрд┐рд╕ рдкрд░ рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рд╕рднреА рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж!

рдирдорд╕реНрддреЗ,

рдореИрдВ рдЗрд╕ рдкрд░ рдмрд╣реБрдд рд╕рд╛рд░реА рдЪрд░реНрдЪрд╛рдУрдВ рд╕реЗ рдЪреВрдХ рдЧрдпрд╛... рдЖрдВрддрд░рд┐рдХ рд░реВрдк рд╕реЗ, рд╣рдордиреЗ рдкреНрд░рд╣рд░реА рдХреНрд▓рд╛рдЗрдВрдЯ рджрд┐рд╢рд╛рдирд┐рд░реНрджреЗрд╢реЛрдВ (http://redis.io/topics/sentinel-clients) рдХреЗ рдмрд╣реБрдд рдХрд░реАрдм рдПрдХ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрд┐рдпрд╛ рд╣реИ, рдЬреЛ рдЗрд╕реЗ рдЖрд╕рд╛рди IMO рдмрдирд╛рддрд╛ рд╣реИред рдпрд╣ @jamessharp рдиреЗ рдЬреЛ рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдХрд┐рдпрд╛ рд╣реИ, https://gist.github.com/tanguylebarzic/5521378
рдпрд╣ рдХреБрдЫ рдорд╣реАрдиреЛрдВ рд╕реЗ рдмрд┐рдирд╛ рдХрд┐рд╕реА рд╕рдорд╕реНрдпрд╛ рдХреЗ рдЪрд▓ рд░рд╣рд╛ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЗрд╕реЗ рд╕реБрдЪрд╛рд░реВ рд░реВрдк рд╕реЗ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП index.js рдореЗрдВ рдХреБрдЫ рдмрджрд▓рд╛рд╡реЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрджрд┐ рдХрд┐рд╕реА рдХрд╛рд░рдг рд╕реЗ рдорд╛рд╕реНрдЯрд░ рдХреЛ рдкреНрд░рд╣рд░реА рдореЗрдВ рдбрд╛рдЙрдирдЧреНрд░реЗрдб рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рд░реЗрдбрд┐рд╕ рдПрдХ рдЙрддреНрддрд░ рддреНрд░реБрдЯрд┐ рдХреЗ рд╕рд╛рде рдЙрддреНрддрд░ рджреЗрдЧрд╛ (рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдк рдХреЗрд╡рд▓ рдкрдврд╝рдиреЗ рд╡рд╛рд▓реЗ рджрд╛рд╕ рдХреЗ рдЦрд┐рд▓рд╛рдл рдирд╣реАрдВ рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВред) рдЬреЛ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рд░реЗрдбрд┐рд╕-рдХреНрд▓рд╛рдЗрдВрдЯ рд╕реЗ рддреНрд░реБрдЯрд┐ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрддреНрд╕рд░реНрдЬрд┐рдд рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ, рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХрдиреЗрдХреНрд╢рди рдХреЗ рд▓рд┐рдП рдЕрджреНрдпрддрди рдХреЛ рдкрдХрдбрд╝рдирд╛ рдФрд░ рдЯреНрд░рд┐рдЧрд░ рдХрд░рдирд╛ рдЕрд╕рдВрднрд╡ рдмрдирд╛ рджреЗрддрд╛ рд╣реИред @Newleafdigital рджреНрд╡рд╛рд░рд╛ рдкреБрд▓ рдЕрдиреБрд░реЛрдз рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдорджрдж рдХрд░рддреЗ рд╣реИрдВред

@tanguylebarzic , рдЖрдкрдХрд╛ рдирдореВрдирд╛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЕрдЪреНрдЫрд╛ рд▓рдЧ рд░рд╣рд╛ рд╣реИред рдХреНрдпрд╛ рдЖрдк рдЕрдзрд┐рдХ рд╡рд┐рд╡рд░рдг рджреЗ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рдЙрд▓реНрд▓рд┐рдЦрд┐рдд index.js рдореЗрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреМрди рд╕реЗ рдкрд░рд┐рд╡рд░реНрддрди рдХрд┐рдП рдЬрд╛рдиреЗ рдЪрд╛рд╣рд┐рдПред

рд╕рд╣рд╛рдпрддрд╛ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред

рдПрдлрд╡рд╛рдИрдЖрдИ - рдореИрдВрдиреЗ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ (рд╣рдорд╛рд░реЗ рд░реЗрдбрд┐рд╕ рд╕реЗрдВрдЯрд┐рдирд▓ рдХреНрд▓рд╛рдЗрдВрдЯ) рдХреЗ рд╕рдорд╛рдзрд╛рди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣рдорд╛рд░реЗ рджреЗрд╡ рдмреНрд▓реЙрдЧ, http://docusigndev.github.io/articles/redis-sentinel-client-nodejs/ рдкрд░ рдПрдХ рдмреНрд▓реЙрдЧ рдкреЛрд╕реНрдЯ рд▓рд┐рдЦрд╛ рдерд╛ред рдореБрдЭреЗ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рддрд░реАрдХрд╛ рдЬрд╛рдирдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕ рд╡рд┐рд╖рдп рдкрд░ рдмрд╛рддрдЪреАрдд рджреЗрдЦрдирд╛ рдЕрдЪреНрдЫрд╛ рд▓рдЧреЗрдЧрд╛!

рдирдорд╕реНрддреЗ @benbuckman рдХреНрдпрд╛ рдЖрдкрдиреЗ #504 рджреЗрдЦрд╛ рд╣реИ - рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдЗрд╕ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЗ рд╕рд╛рде рдПрдХ рдкреНрд░рд╣рд░реА рдкреНрд░рдмрдВрдзрдХ (рдФрд░ рдХреНрд▓рд╕реНрдЯрд░) рдХреЗ рд╕рд╣реА рдПрдХреАрдХрд░рдг рдХреЛ рд╕рдХреНрд╖рдо рдХрд░реЗрдЧрд╛ред рдЙрд╕ рд╕рдВрдмрдВрдз рдореЗрдВ рдЖрдкрдХреЗ рдЗрдирдкреБрдЯ рдФрд░ рдорджрдж рдХрд╛ рдмрд╣реБрдд рд╕реНрд╡рд╛рдЧрдд рд╣реИ!

рдпрд╣рд╛рдБ рдХреЛрдИ рдкреНрд░рдЧрддрд┐?

рдореИрдВ @benbuckman рдХреЗ рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдЙрд╕рд╕реЗ рд╕рд╣рдордд рд╣реВрдВ рдХрд┐ рдореИрдВ рдпрд╣рд╛рдВ рд╕рд░реНрд╡реЛрддреНрддрдо рджреГрд╖реНрдЯрд┐рдХреЛрдг рдкрд░ рдФрд░ рдЕрдзрд┐рдХ рдХреЙрдиреНрд╡реЛ рдФрд░ рдХрд╛рд░реНрд░рд╡рд╛рдИ рджреЗрдЦрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред

рдкреНрд░рд╣рд░реА рд╕рдорд░реНрдерди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдм рдХреНрдпрд╛? рдХреНрдпрд╛ рдХреЛрдИ рдкреНрд░рдЧрддрд┐ рд╣реБрдИ рд╣реИ?

рдореЗрд░реЗ рд▓рд┐рдП рднреА рдХреНрд╖рдорд╛ рдХрд░реЗрдВ... рдЗрд╕ рдкрд░ рдХреНрдпрд╛ рдкреНрд░рдЧрддрд┐ рд╣реИ? рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЕрднреА рдЗрд╕ рдореЙрдбреНрдпреВрд▓ рдкрд░ рдХреЛрдИ рд╕рдХреНрд░рд┐рдп рд╡рд┐рдХрд╛рд╕ рдирд╣реАрдВ рд╣реБрдЖ рд╣реИред

рдиреЛрдб_рд░реЗрдбрд┐рд╕ +1 . рдореЗрдВ рдореВрд▓ рдкреНрд░рд╣рд░реА рд╕рдорд░реНрдерди

@рдмреНрд▓реЗрдиреНрд╕рдорд┐рде рд╡реЙрдЯ

@blainsmith рдХреНрдпрд╛ рдЖрдк рд╣рдореЗрдВ

рдЙрдлрд╝ред рдореИрдВ рдЗрд╕ рдкрд░ рдЕрдкрдиреА рдбрд┐рдмреНрдмрд╛рдмрдВрдж рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдкреЗрд╕реНрдЯ рдХрд░рдирд╛ рднреВрд▓ рдЧрдпрд╛ред рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдкреБрд░рд╛рдиреЗ рдореБрджреНрджреЛрдВ рд╕реЗ рдЧреБрдЬрд░ рд░рд╣рд╛ рдерд╛ рдФрд░ рд╕рдлрд╛рдИ рдХрд░ рд░рд╣рд╛ рдерд╛ред рдЙрд╕рдХреЗ рд▓рд┐рдП рдорд╛рдлрд╝ рдХрд░рдирд╛ред рдореИрдВ рдЗрд╕реЗ рдлрд┐рд░ рд╕реЗ рдЦреЛрд▓реВрдВрдЧрд╛ рдФрд░ рддрджрдиреБрд╕рд╛рд░ рдЯреИрдЧ рдХрд░реВрдВрдЧрд╛!

@blainsmith рдЖрд╣, рдореИрдВ рджреЗрдЦрддрд╛ рд╣реВрдБред рдЕрджреНрдпрддрди рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред :)

рдХреНрдпрд╛ рд╕реЗрдВрдЯрд┐рдирд▓ рдкрд░ рдХреЛрдИ рдЦрдмрд░ рд╣реИ? рдХреНрдпрд╛ рдЖрдк рдХрд┐рд╕реА рдбреНрд░реЙрдк-рдЗрди рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирддреЗ рд╣реИрдВ рдЬреЛ рд╕реЗрдВрдЯрд┐рдирд▓ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ?

_рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ: рдкреНрд░рд╣рд░реА_ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдЗрд╕рдХреЗ рдмрдЬрд╛рдп RedisLabs рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛

рдХреЛрдИ рдЦрдмрд░? :(

рдХреНрдпрд╛ рдХреЛрдИ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ рдХрд┐ рд╕рдмрд╕реЗ рд▓реЛрдХрдкреНрд░рд┐рдп рд░реЗрдбрд┐рд╕ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛ 8 рд╡рд░реНрд╖реЛрдВ рдХреЗ рдмрд╛рдж рдХрд┐рд╕реА рднреА рднрд╡рд┐рд╖реНрдп рдореЗрдВ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╡рд╛рдВрдЫрд┐рдд рд╕реБрд╡рд┐рдзрд╛ (рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдмрд╛рджрд▓реЛрдВ рдХреЗ рд▓рд┐рдП) рдорд┐рд▓ рдЬрд╛рдПрдЧреА? ЁЯдФ

рдпрд╛ рдХреЛрдИ рдмрддрд╛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдРрд╕рд╛ рдХрд░рдиреЗ рдореЗрдВ рдХреНрдпрд╛ рд╕рдорд╕реНрдпрд╛ рд╣реИ? ЁЯзР

рдореИрдВрдиреЗ ioredis рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрд┐рдпрд╛ .. рдпрд╣ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдореЗрдВ рдПрдХ рдкреНрд░рдХрд╛рд░ рдХреА рдЧрд┐рд░рд╛рд╡рдЯ рд╣реИ

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

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

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

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

betimer picture betimer  ┬╖  5рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

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

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