рдиреЛрдб_рд░реЗрдбрд┐рд╕ : 2.7.1
рд░реЗрдбрд┐рд╕ : 3.2
рдордВрдЪ : рдЕрдореЗрдЬрд╝реЕрди рд▓рд╛рдЗрдирдХреНрд╕
рд╡рд┐рд╡рд░рдг:
рдЬрдм Redis 'рд╕реНрдиреИрдкрд╢реЙрдЯ рд╣реЛрддрд╛ рд╣реИ рддреЛ рдпрд╣ рд░реЗрдбрд┐рд╕ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛ рдбрд┐рд╕реНрдХрдиреЗрдХреНрдЯ рдХрд░рддрд╛ рд╣реИред рдХреНрд▓рд╛рдЗрдВрдЯ рдлрд┐рд░ рд╕реЗ рдЬреБрдбрд╝рддрд╛ рд╣реИ рдФрд░ рдлрд┐рд░ рд╕реЗ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐, рд╡реЗ рдЕрдм рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред рд░реЗрдбрд┐рд╕-рдХреНрд▓реА рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ SAVE
рдХрдорд╛рдВрдб рдЬрд╛рд░реА рдХрд░рдХреЗ рдЗрд╕реЗ рдкреБрди: рдкреНрд░рд╕реНрддреБрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдЬреЗ рдПрд╕
const redis = require('redis');
const redisClient = redis.createClient({
host: config.redisEndpoint,
port: config.redisPort,
});
redisClient.on('connect', () => {
console.log('Connected to Redis');
console.log('subscription_set:', redisClient.subscription_set);
});
redisClient.on('reconnecting', (stats) => {
console.log('Reconnecting to Redis', stats);
});
redisClient.on('error', (error) => {
console.log('Failed to connect to Redis: ', error);
});
redisClient.on('subscribe', (channel, count) => { // eslint-disable-line no-unused-vars
console.log('Subscribed to: ', channel, count);
});
redisClient.on('message', (channel, message) => { // eslint-disable-line no-unused-vars
console.log('Received from: ', channel, message);
});
redisClient.subscribe('test');
рд▓реЙрдЧреНрд╕
рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдХрдиреЗрдХреНрдЯ
info: Connected to Redis
info: subscription_set:
info: Subscribed to: test 1
Redis-cli рдореЗрдВ SAVE рдХрдорд╛рдВрдб рдЬрд╛рд░реА рдХрд░рдирд╛
info: Error: Redis connection to 34.213.3.19:6379 failed - read ECONNRESET
info: Reconnecting to Redis delay=983, attempt=4, code=ECONNRESET, errno=ECONNRESET, syscall=connect, address=127.0.0.1, port=6379, total_retry_time=1118, times_connected=1
info: Connected to Redis
info: subscription_set: subscribe_test=test
info: Subscribed to: test 1
рдпрд╣ рдЗрд╕ рдмрд┐рдВрджреБ рдкрд░ рд╣реИ рдХрд┐ рдЧреНрд░рд╛рд╣рдХ рдЕрдм рдЪреИрдирд▓ рдкрд░реАрдХреНрд╖рдг рдХреЗ рд▓рд┐рдП рдкреНрд░рдХрд╛рд╢рд┐рдд рдХреЛрдИ рднреА рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ред рдпрджрд┐ рдЖрдкрдХреЗ рдХреЛрдИ рдкреНрд░рд╢реНрди рд╣реИрдВ рдпрд╛ рдХреГрдкрдпрд╛ рдкреБрди: рдкреЗрд╢ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рддреЛ рдореБрдЭреЗ рдмрддрд╛рдПрдВред
@BridgeAR @iamjem # 1249 рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реЛ рд╕рдХрддрд╛ рд╣реИ
рдЖрдкрдХреЗ рд╡рд┐рд╕реНрддреГрдд рд╡рд┐рд╡рд░рдг рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рд╣рд╛рд▓рд╛рдБрдХрд┐ рдореИрдВ рдЕрднреА рддрдХ рдЗрд╕реЗ рдкреБрди: рдкреНрд░рд╕реНрддреБрдд рдирд╣реАрдВ рдХрд░ рдкрд╛рдпрд╛ рд╣реВрдБред рдЬрдм рдореИрдВ redis-cli рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ SAVE
рдЬрд╛рд░реА рдХрд░рддрд╛ рд╣реВрдВ рддреЛ рдХрдиреЗрдХреНрд╢рди рд░реАрд╕реЗрдЯ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред
рдЬрдм рдореИрдВ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рд░реЗрдбрд┐рд╕ рд╕рд░реНрд╡рд░ рдХреЛ рдмрдВрдж рдХрд░рддрд╛ рд╣реВрдВ рдФрд░ рдЗрд╕реЗ рдлрд┐рд░ рд╕реЗ рд╢реБрд░реВ рдХрд░рддрд╛ рд╣реВрдВ рддреЛ рдпрд╣ рд╕рдВрджреЗрд╢ рдареАрдХ рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИред
рдореИрдВ рдореИрдХ рдкрд░ рдпрд╣ рдкрд░реАрдХреНрд╖рдг рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рдЗрд╕реЗ рд▓рд┐рдирдХреНрд╕ рдкрд░ рднреА рдкреБрди: рдкреЗрд╢ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реВрдВрдЧрд╛
рд╣рдореНрдордо ... рдпрд╣ рджрд┐рд▓рдЪрд╕реНрдк рд╣реИред рдпрд╣ рд╕реНрд░реЛрдд рд╕реЗ рдирд┐рд░реНрдорд┐рдд рдПрдХ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕реНрдЯреЙрдХ рд░реЗрдбрд┐рд╕ рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рди рдХреЗ рд╕рд╛рде рд╣реЛ рд░рд╣рд╛ рдерд╛ред рдПрдХрдорд╛рддреНрд░ рд╡рд┐рдХрд▓реНрдк рдЬреЛ рдореИрдВрдиреЗ рдмрджрд▓рд╛, рд╡рд╣ рдерд╛ рджреВрд░рд╕реНрде рдХрдиреЗрдХреНрд╢рди рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдирд╛ред рдореИрдВ рдЬрд▓реНрдж рд╣реА рдПрдХ рдирдЬрд╝рд░ рдбрд╛рд▓реВрдВрдЧрд╛ рдФрд░ рджреЗрдЦреВрдВрдЧрд╛ рдХрд┐ рдХреНрдпрд╛ рдкрддрд╛ рдЪрд▓ рд╕рдХрддрд╛ рд╣реИред @ рдЬреЗрдбреЗрдЧрд░
@jdegger рдореИрдВ рд╕реНрдерд╛рдиреАрдп рд░реВрдк рд╕реЗ рдХреЗрд╡рд▓ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╡рд┐рдЬреНрдЮрд╛рдкрди рд╢рд░реНрддреЛрдВ рдХреЗ рддрд╣рдд AWS рдореЗрдВ рдлрд┐рд░ рд╕реЗ
рдареАрдХ рд╣реИ, рдЕрдВрдд рдореЗрдВ рдордЬрд╝рдмреВрддреА рд╕реЗ рдкреБрди: рдкреЗрд╢ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдоред рдХреБрдЫ рдЖрд╡рд╢реНрдпрдХрддрд╛рдПрдБ рд╣реИрдВ:
tcp-keepalive 0
рд╕реЗрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛рдЖрдк рдЬреЛ рджреЗрдЦреЗрдВрдЧреЗ рд╡рд╣ рдпрд╣ рд╣реИ рдХрд┐ рд╣рд░ 2 рдШрдВрдЯреЗ (рдХрдо рд╕реЗ рдХрдо рдореЗрд░реЗ рд▓рд┐рдП) рдПрдХ ECONNRESET рддреНрд░реБрдЯрд┐ рд╣реИред рдЗрд╕ рдмрд┐рдВрджреБ рдкрд░, рд╕реЙрдХреЗрдЯ рдЕрднреА рднреА рд▓рд╛рд▓ рд░рдВрдЧ рдореЗрдВ рдЦреБрд▓рд╛ рджрд┐рдЦрд╛рдИ рджреЗрддрд╛ рд╣реИ рд▓реЗрдХрд┐рди рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдиреЛрдб рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдиреЗ рдЗрд╕рдХрд╛ рдПрдХ рд╕рдВрджрд░реНрдн рдЦреЛ рджрд┐рдпрд╛ рд╣реЛ рдФрд░ рдПрдХ рдирдпрд╛ рд╕реЙрдХреЗрдЯ рдЦреЛрд▓рд╛ рд╣реЛ? рд░рд╛рддреЛрдВ рд░рд╛рдд рдореБрдЭреЗ 1 рдХреНрд▓рд╛рдЗрдВрдЯ рдкрд╕рдВрдж рдерд╛ рдЬреЛ рдкреНрд░рддрд┐ 2 рдШрдВрдЯреЗ рдмреНрд▓реЙрдХ рд╕реЗ рдЬреБрдбрд╝рд╛ рдерд╛ рдФрд░ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдЪрд▓ рд░рд╣реА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╣реИ рдЬрдм рд░реЗрдбрд┐рд╕-рдХреНрд▓реА рд╕реЗ CLIENT LIST
рдЬрд╛рд░реА рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред
рдпрд╣ рдзреНрдпрд╛рди рд░рдЦрдирд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ рдХрд┐ рдХреНрд▓рд╛рдЗрдВрдЯ рд╕рднреА рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдкреБрди: рдХрдиреЗрдХреНрдЯ рд╣реЛ рд░рд╣реЗ рдереЗ рд▓реЗрдХрд┐рди рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдирд╣реАрдВ рдХрд░ рд░рд╣реЗ рдереЗред рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рдХреВрдмрдбрд╝ рд╣реИ рдХрд┐ рдбреЗрдЯрд╛ рдХреЛ рдмрд╛рд╣рд░ рдзрдХреЗрд▓рд╛ рдЬрд╛ рд░рд╣рд╛ рдерд╛, рд▓реЗрдХрд┐рди рдкреБрд░рд╛рдиреЗ рдХрдиреЗрдХреНрд╢рди рдХреЗ рд▓рд┐рдП рдирдпрд╛ рдирд╣реАрдВ рд╣реИ ... рд▓реЗрдХрд┐рди рдпрд╣ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдПрдХ рдХреВрдмрдбрд╝ рд╣реИред
рдЕрдм, рдореИрдВ 100% рдирд┐рд╢реНрдЪрд┐рдд рдирд╣реАрдВ рд╣реВрдВ рдХрд┐ рдХреНрдпрд╛ рдпрд╣ рдПрдХ рдиреЛрдб_реНрд░реЗрдбрд┐рд╕ рдмрдЧ рд╣реИ рдпрд╛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдиреЛрдб рдХреЗ рд╕рд╛рде рдПрдХ рдмрдЧ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрджрд┐ рдпрд╣ рдЧрд▓рдд рдЬрдЧрд╣ рд╣реИ рддреЛ рдмрд╕ рдореБрдЭреЗ рдмрддрд╛рдПрдВред рдореИрдВ рдХреЛрд╢рд┐рд╢ рдХрд░рдХреЗ рдЦреБрд╢ рд╣реЛ рдЬрд╛рдКрдВрдЧрд╛ рдпрд╛ рд╕реАрдорд┐рдд рд╕рдордп рдХреЗ рд╕рд╛рде рдХрджрдо рдмрдврд╝рд╛рдПрдЧрд╛ред
рдлрд┐рдХреНрд╕ рдХреЛ tcp-keepalive 300
рд╕реЗрдЯ рдХрд░рдирд╛ рдерд╛ рдЬреЛ рдХрдиреЗрдХреНрд╢рди рдХреЛ рд╕рдХреНрд░рд┐рдп рд░рдЦрддрд╛ рд╣реИ ... рд▓реЗрдХрд┐рди рдпрд╣ рдорд╣рд╕реВрд╕ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдЧреНрд░рд╛рд╣рдХ рдХреЛ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдХрд╛рдЯрдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред
@ рд╢рдорджреЛ
рд╣рдорд╛рд░рд╛ рдпрд╣ рднреА рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ рдХрд┐ ECONNRESET рддреНрд░реБрдЯрд┐ рд╣рд░ 2 рдШрдВрдЯреЗ рдореЗрдВ рд╣реЛрддреА рд╣реИред рд▓реЗрдХрд┐рди рдореИрдВрдиреЗ tcp-keepalive рдХреА рдЬрд╛рдБрдЪ рдХреА, рдпрд╣ 300 рд╣реИ
CONFIG GET tcp-keepalive
1) "tcp-keepalive"
2) "300"
рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА
рдареАрдХ рд╣реИ, рдЕрдВрдд рдореЗрдВ рдордЬрд╝рдмреВрддреА рд╕реЗ рдкреБрди: рдкреЗрд╢ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдоред рдХреБрдЫ рдЖрд╡рд╢реНрдпрдХрддрд╛рдПрдБ рд╣реИрдВ:
tcp-keepalive 0
рд╕реЗрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛рдЖрдк рдЬреЛ рджреЗрдЦреЗрдВрдЧреЗ рд╡рд╣ рдпрд╣ рд╣реИ рдХрд┐ рд╣рд░ 2 рдШрдВрдЯреЗ (рдХрдо рд╕реЗ рдХрдо рдореЗрд░реЗ рд▓рд┐рдП) рдПрдХ ECONNRESET рддреНрд░реБрдЯрд┐ рд╣реИред рдЗрд╕ рдмрд┐рдВрджреБ рдкрд░, рд╕реЙрдХреЗрдЯ рдЕрднреА рднреА рд▓рд╛рд▓ рд░рдВрдЧ рдореЗрдВ рдЦреБрд▓рд╛ рджрд┐рдЦрд╛рдИ рджреЗрддрд╛ рд╣реИ рд▓реЗрдХрд┐рди рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдиреЛрдб рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдиреЗ рдЗрд╕рдХрд╛ рдПрдХ рд╕рдВрджрд░реНрдн рдЦреЛ рджрд┐рдпрд╛ рд╣реЛ рдФрд░ рдПрдХ рдирдпрд╛ рд╕реЙрдХреЗрдЯ рдЦреЛрд▓рд╛ рд╣реЛ? рд░рд╛рддреЛрдВ рд░рд╛рдд рдореБрдЭреЗ 1 рдХреНрд▓рд╛рдЗрдВрдЯ рдкрд╕рдВрдж рдерд╛ рдЬреЛ рдкреНрд░рддрд┐ 2 рдШрдВрдЯреЗ рдмреНрд▓реЙрдХ рд╕реЗ рдЬреБрдбрд╝рд╛ рдерд╛ рдФрд░ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдЪрд▓ рд░рд╣реА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╣реИ рдЬрдм рд░реЗрдбрд┐рд╕-рдХреНрд▓реА рд╕реЗ
CLIENT LIST
рдЬрд╛рд░реА рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛редрдпрд╣ рдзреНрдпрд╛рди рд░рдЦрдирд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ рдХрд┐ рдХреНрд▓рд╛рдЗрдВрдЯ рд╕рднреА рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдкреБрди: рдХрдиреЗрдХреНрдЯ рд╣реЛ рд░рд╣реЗ рдереЗ рд▓реЗрдХрд┐рди рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдирд╣реАрдВ рдХрд░ рд░рд╣реЗ рдереЗред рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рдХреВрдмрдбрд╝ рд╣реИ рдХрд┐ рдбреЗрдЯрд╛ рдХреЛ рдмрд╛рд╣рд░ рдзрдХреЗрд▓рд╛ рдЬрд╛ рд░рд╣рд╛ рдерд╛, рд▓реЗрдХрд┐рди рдкреБрд░рд╛рдиреЗ рдХрдиреЗрдХреНрд╢рди рдХреЗ рд▓рд┐рдП рдирдпрд╛ рдирд╣реАрдВ рд╣реИ ... рд▓реЗрдХрд┐рди рдпрд╣ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдПрдХ рдХреВрдмрдбрд╝ рд╣реИред
рдЕрдм, рдореИрдВ 100% рдирд┐рд╢реНрдЪрд┐рдд рдирд╣реАрдВ рд╣реВрдВ рдХрд┐ рдХреНрдпрд╛ рдпрд╣ рдПрдХ рдиреЛрдб_реНрд░реЗрдбрд┐рд╕ рдмрдЧ рд╣реИ рдпрд╛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдиреЛрдб рдХреЗ рд╕рд╛рде рдПрдХ рдмрдЧ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрджрд┐ рдпрд╣ рдЧрд▓рдд рдЬрдЧрд╣ рд╣реИ рддреЛ рдмрд╕ рдореБрдЭреЗ рдмрддрд╛рдПрдВред рдореИрдВ рдХреЛрд╢рд┐рд╢ рдХрд░рдХреЗ рдЦреБрд╢ рд╣реЛ рдЬрд╛рдКрдВрдЧрд╛ рдпрд╛ рд╕реАрдорд┐рдд рд╕рдордп рдХреЗ рд╕рд╛рде рдХрджрдо рдмрдврд╝рд╛рдПрдЧрд╛ред
рдлрд┐рдХреНрд╕ рдХреЛ
tcp-keepalive 300
рд╕реЗрдЯ рдХрд░рдирд╛ рдерд╛ рдЬреЛ рдХрдиреЗрдХреНрд╢рди рдХреЛ рд╕рдХреНрд░рд┐рдп рд░рдЦрддрд╛ рд╣реИ ... рд▓реЗрдХрд┐рди рдпрд╣ рдорд╣рд╕реВрд╕ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдЧреНрд░рд╛рд╣рдХ рдХреЛ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдХрд╛рдЯрдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред