рдирдорд╕реНрддреЗ,
рдХреНрдпрд╛ рдиреЛрдб_рд░реЗрдбрд┐рд╕ рдкреНрд░рд╣рд░реА рдХреЛ рдЬрд╛рдЧрд░реВрдХ рдХрд░рдиреЗ рдХреА рдХреЛрдИ рдпреЛрдЬрдирд╛ рд╣реИ? рдореИрдВ рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рдкрд░ рдкреНрд░рд╣рд░реА рдХреА рд╕реВрдЪреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪ рд░рд╣рд╛ рд╣реВрдВ, рдлрд┐рд░ рдорд╛рд╕реНрдЯрд░реНрд╕ рдХреЛ рдЦреЛрдЬреЗрдВ рдФрд░ рдХрдиреЗрдХреНрдЯ рдХрд░реЗрдВ, рдФрд░ рдорд╛рд╕реНрдЯрд░реНрд╕ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рд╕реЗрдВрдЯреАрдиреЗрд▓ рд╕рдВрджреЗрд╢ рдХреА рд╕рджрд╕реНрдпрддрд╛ рд▓реЗрдВред рдпрджрд┐ рдирд╣реАрдВ, рддреЛ рдЗрд╕ рдкрд░ рдХрд╛рдо рд╢реБрд░реВ рдХрд░рдиреЗ рдореЗрдВ рдЦреБрд╢реА рд╣реЛрдЧреА!
рдЯрдВрдЧреБрдпреВ
+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 рдлреЗрд▓рдУрд╡рд░ рдХреЗ рджреМрд░рд╛рди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рдЦреЛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП?
рдзрдиреНрдпрд╡рд╛рдж
рдХреБрдЫ рд╡рд┐рдЪрд╛рд░ рдпрд╣ рдХреНрдпреЛрдВ рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд░рд╣реЗ рд╣реИрдВ:
рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдбреЗрдЯрд╛ рдмрдлрд╝рд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВред рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рд▓реЗрдХрд┐рди рд╡реНрдпрд╡рд╣рд╛рд░ рд╡рд╣реА рд╣реЛрдЧрд╛ рдЬреЛ рдХреБрдЫ рднреА рд╣реЛрддрд╛ рд╣реИ рдЬрдм рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдХреНрд▓рд╛рдЗрдВрдЯ рдлрд┐рд░ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддрд╛ рд╣реИред
рдореБрдЦреНрдп рд▓рд╛рдкрддрд╛ рдЯреБрдХрдбрд╝рд╛ рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛ рд░рд╣рд╛ рд╣реИ рдХрд┐ рдорд╛рд╕реНрдЯрд░ рдХреЛ рдиреАрдЪреЗ рдЬрд╛рдиреЗ рдХреЗ рдмрд┐рдирд╛ рдмрджрд▓ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ (рдпрд╛рдиреА рдореИрдиреНрдпреБрдЕрд▓ рд╡рд┐рдлрд▓рддрд╛)ред рд▓реЗрдХрд┐рди рдкреБрди: рд╕рдВрдпреЛрдЬрди рдХреЛ рдпрдерд╛рд╕рдВрднрд╡ рддреЗрдЬрд╝ рдмрдирд╛рдиреЗ рдкрд░ рдХреБрдЫ рдФрд░ рдХрд╛рдо рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдореИрдВрдиреЗ рддреБрд▓рдирд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣рдорд╛рд░реЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд╕рд╛рде рдПрдХ рдкрд░реАрдХреНрд╖рдг рдЬреЛрдбрд╝рд╛ред рдкрд░рд┐рдгрд╛рдо рд╕рд╛рд░ рдореЗрдВ рд╣реИрдВ ред рд╡рд┐рдлрд▓рддрд╛ рдХреЗ рджреМрд░рд╛рди рдХрд┐рдП рдЧрдП рд╕рднреА I/O рдиреЛрдб-рд░реЗрдбрд┐рд╕-рд╕реЗрдВрдЯрд┐рдирд▓ рдХреЗ рд╕рд╛рде рдЦреЛ рдЬрд╛рддреЗ рд╣реИрдВ, рдФрд░ рд╣рдорд╛рд░реЗ (рдЕрдзрд┐рдХ рдереЛрдХ) рд╕рдорд╛рдзрд╛рди рдХреЗ рд╕рд╛рде рдХреЛрдИ рдбреЗрдЯрд╛ рдирд╣реАрдВ
рдореБрдЭреЗ рдЖрдкрдХреЗ рд╕рдорд╛рдзрд╛рди рдХреА рд╕рд╛рджрдЧреА рдкрд╕рдВрдж рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдЖрд╢реНрдЪрд░реНрдп рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдпрд╣ рдЙрди рд▓рдХреНрд╖реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИ рдЬрд┐рдиреНрд╣реЗрдВ рд╣рдо рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдЙрдореНрдореАрдж рдХрд░ рд░рд╣реЗ рдереЗ:
рдЕрднреА рдХреЗ рд▓рд┐рдП, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдорд╛рд░рд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреБрдЫ рдореВрд▓реНрдп рдЬреЛрдбрд╝рддрд╛ рд╣реИ, рдФрд░ рдореИрдВ рдЗрд╕реЗ рдЕрдкрдиреЗ рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рдЕрд▓рдЧ рдХрд░ рджреВрдВрдЧрд╛ред рдпрджрд┐ рдпрд╣ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдХрд╛ рдЕрдзрд┐рдХ рд╕рд░рд▓ рд╡рд┐рдХрд▓реНрдк рдкрд░реНрдпрд╛рдкреНрдд рд╣реЛрдЧрд╛, рддреЛ рд╣рдо рдЙрд╕ рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрд░реЗрдВрдЧреЗред
рдЕрдВрддрд░рд┐рдХреНрд╖ рдХреЛ рд╕рдореГрджреНрдз рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж!
рд╣рд╛рдБ рдЖрдкрдХреЗ рд▓рдХреНрд╖реНрдп рд╣рд╛рдЬрд┐рд░ рд╣реИрдВред рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЙрдирдореЗрдВ рд╕реЗ рдмрд╣реБрдд рд╕реЗ рдореВрд▓ 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 рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрд┐рдпрд╛ .. рдпрд╣ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдореЗрдВ рдПрдХ рдкреНрд░рдХрд╛рд░ рдХреА рдЧрд┐рд░рд╛рд╡рдЯ рд╣реИ