node_redis : 2.7.1
redis : 3.2
νλ«νΌ : μλ§μ‘΄ 리λ
μ€
κΈ°μ :
redisμ μ€λ
μ·μ΄ λ°μνλ©΄ redis ν΄λΌμ΄μΈνΈμ μ°κ²°μ΄ λμ΄μ§λλ€. ν΄λΌμ΄μΈνΈλ λ€μ μ°κ²°νκ³ λ€μ ꡬλ
νμ§λ§ λ μ΄μ λ°μ΄ν°λ₯Ό μμ νμ§ μμ΅λλ€. redis-cliλ₯Ό ν΅ν΄ SAVE
λͺ
λ Ήμ μ€ννμ¬ μ¬ν ν μ μμ΅λλ€.
JS
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
λ₯Ό λ°ννλ©΄ μ°κ²°μ΄ μ¬μ€μ λμ§ μμ΅λλ€.
redis μλ²λ₯Ό μλμΌλ‘ μ€μ§νκ³ λ€μ μμνλ©΄ λ©μμ§κ° μ λλ‘ μμ λλ κ² κ°μ΅λλ€.
λλ μ΄κ²μ Macμμ ν μ€νΈνκ³ μμΌλ©° Linuxμμλ μ¬ννλ €κ³ λ Έλ ₯ν κ²μ λλ€.
μ ... ν₯λ―Έ λ‘κ΅°μ. μμ€μμ λΉλ λ μμ ν μ¬κ³ redis μ€μΉλ‘ λ°μνμ΅λλ€. λ΄κ° λ³κ²½ ν μ μΌν μ΅μ μ μ격 μ°κ²°μ νμ©νλ κ²μ λλ€. 곧 μ΄ν΄λ³΄κ³ λ¬΄μ¨ μΌμΈμ§ μμλΌ μ μλμ§ μμ λ³Όκ²μ. @jdegger
@jdegger μ λ λ‘컬μμ μ¬ν ν μ μμΌλ©° λ§€μ° κ΅¬μ²΄μ μΈ μ‘°κ±΄ νμμ λ§ AWSμμλ§ κ°λ₯ν©λλ€. μ΄ AMIμ λ λ²μ§Έ 볡μ¬λ³Έμ μμ±νκ³ μ¬ν ν μμλ μ½λλ₯Ό μ 곡 ν μ μμ§λ§ AWSμμ μ€ννλ κ²κ³Ό κ΄λ ¨λ κ² κ°μ΅λλ€. κ΄μ¬μ΄ μμΌμλ©΄ μλ €μ£ΌμΈμ ... κ·Έλ μ§ μμΌλ©΄ κ³μν΄μ λ¬Έμ λ₯Ό μ’ λ£νκ² μ΅λλ€.
μ’μ, λλμ΄ μμ μ μΌλ‘ μ¬ν ν μ μμ΅λλ€. λͺ κ°μ§ μꡬ μ¬νμ΄ μμ΅λλ€.
tcp-keepalive 0
μ€μ ν΄μΌν©λλ€.λΉμ μ΄ λ³΄κ² λ κ²μ (μ μ΄λ λλ₯Ό μν΄) 2 μκ°λ§λ€ ECONNRESET μ€λ₯λΌλ κ²μ
λλ€. μ΄ μμ μμ μμΌμ μ¬μ ν ββredisμμ μ΄λ €μλ κ²μ²λΌ 보μ΄μ§λ§ λ
Έλ νλ‘μΈμ€κ° κ·Έκ²μ λν μ°Έμ‘°λ₯Ό μκ³ μ μμΌμ μ΄μμκΉμ? λ°€μ 2 μκ° λΈλ‘ λΉ 1 κ°μ ν΄λΌμ΄μΈνΈκ° μ°κ²°λμκ³ redis-cliμμ CLIENT LIST
λ₯Ό λ°ν ν λ νμ¬ μ€νμ€μΈ νλ‘μΈμ€κ° μΆκ°λμμ΅λλ€.
ν΄λΌμ΄μΈνΈκ° λͺ¨λ μ±κ³΅μ μΌλ‘ λ€μ μ°κ²°λμμ§λ§ λ°μ΄ν°λ₯Όλ°μ§ λͺ»νλ€λ μ μ μ μν΄μΌν©λλ€. λλ λ°μ΄ν°κ° λ°λ € λκ³ μλ€λ μ§κ°μ΄ μμ§λ§ μλ‘μ΄ μ°κ²°μ΄ μλ μ΄μ μ°κ²°μ λν μ§κ°μ λλ€.νμ§λ§ κ·Έκ²μ μμ ν μ§κ°μ λλ€.
μ, μ΄κ²μ΄ node_redis λ²κ·ΈμΈμ§ λλ μ€μ λ‘ nodeμ λ²κ·ΈμΈμ§ 100 % νμ νμ§ λͺ»ν©λλ€. λ§μ½ μ΄κ²μ΄ μλͺ»λ νμΌ μ₯μλΌλ©΄ μλ €μ£ΌμΈμ. μλνκ³ λλ²κ·Έ / λ¨κ³μ μΌλ‘ μ§ννλ κ²μ΄ μ’μ§λ§ μκ°μ΄ μ νλμ΄ μμ΅λλ€.
μμ μ¬νμ μ°κ²°μ νμ± μνλ‘ μ μ§νλ tcp-keepalive 300
νλ κ²μ΄μμ§λ§ ν΄λΌμ΄μΈνΈκ° μ±κ³΅μ μΌλ‘ λ€μ μ°κ²°ν μ μμ΄μΌνκΈ° λλ¬Έμ λΆμμ ν λλμ΄ λλλ€.
ν
λν ECONNRESET μ€λ₯κ° 2 μκ°λ§λ€ λ°μ ν¨μ 보μ¬μ€λλ€. νμ§λ§ tcp-keepaliveλ₯Ό νμΈνλλ° 300μ λλ€.
CONFIG GET tcp-keepalive
1) "tcp-keepalive"
2) "300"
κ°μ₯ μ μ©ν λκΈ
μ’μ, λλμ΄ μμ μ μΌλ‘ μ¬ν ν μ μμ΅λλ€. λͺ κ°μ§ μꡬ μ¬νμ΄ μμ΅λλ€.
tcp-keepalive 0
μ€μ ν΄μΌν©λλ€.λΉμ μ΄ λ³΄κ² λ κ²μ (μ μ΄λ λλ₯Ό μν΄) 2 μκ°λ§λ€ ECONNRESET μ€λ₯λΌλ κ²μ λλ€. μ΄ μμ μμ μμΌμ μ¬μ ν ββredisμμ μ΄λ €μλ κ²μ²λΌ 보μ΄μ§λ§ λ Έλ νλ‘μΈμ€κ° κ·Έκ²μ λν μ°Έμ‘°λ₯Ό μκ³ μ μμΌμ μ΄μμκΉμ? λ°€μ 2 μκ° λΈλ‘ λΉ 1 κ°μ ν΄λΌμ΄μΈνΈκ° μ°κ²°λμκ³ redis-cliμμ
CLIENT LIST
λ₯Ό λ°ν ν λ νμ¬ μ€νμ€μΈ νλ‘μΈμ€κ° μΆκ°λμμ΅λλ€.ν΄λΌμ΄μΈνΈκ° λͺ¨λ μ±κ³΅μ μΌλ‘ λ€μ μ°κ²°λμμ§λ§ λ°μ΄ν°λ₯Όλ°μ§ λͺ»νλ€λ μ μ μ μν΄μΌν©λλ€. λλ λ°μ΄ν°κ° λ°λ € λκ³ μλ€λ μ§κ°μ΄ μμ§λ§ μλ‘μ΄ μ°κ²°μ΄ μλ μ΄μ μ°κ²°μ λν μ§κ°μ λλ€.νμ§λ§ κ·Έκ²μ μμ ν μ§κ°μ λλ€.
μ, μ΄κ²μ΄ node_redis λ²κ·ΈμΈμ§ λλ μ€μ λ‘ nodeμ λ²κ·ΈμΈμ§ 100 % νμ νμ§ λͺ»ν©λλ€. λ§μ½ μ΄κ²μ΄ μλͺ»λ νμΌ μ₯μλΌλ©΄ μλ €μ£ΌμΈμ. μλνκ³ λλ²κ·Έ / λ¨κ³μ μΌλ‘ μ§ννλ κ²μ΄ μ’μ§λ§ μκ°μ΄ μ νλμ΄ μμ΅λλ€.
μμ μ¬νμ μ°κ²°μ νμ± μνλ‘ μ μ§νλ
tcp-keepalive 300
νλ κ²μ΄μμ§λ§ ν΄λΌμ΄μΈνΈκ° μ±κ³΅μ μΌλ‘ λ€μ μ°κ²°ν μ μμ΄μΌνκΈ° λλ¬Έμ λΆμμ ν λλμ΄ λλλ€.