Estoy usando el paquete ioredis y quiero eliminar las conexiones con tiempo de inactividad> 30 segundos. Yo uso este código:
const clientList = await redisClient.client('list'); if (typeof clientList === 'string') { await Promise.all( clientList .split('\n') .filter(item => item !== '') .filter( item => parseInt(item.match(/.*?idle=(.*)? flags=/)[1], 10) > 30 ) // idle > 30 seconds .map(async item => { const id = item.match(/.*?id=(.*)? addr=/)[1]; const res = await redisClient.client('kill', 'id', id); console.log('res', res); }) ); }Y me sale esto en la consola:
res 1 res 1 res 1 ... res 1 res 1Pero las conexiones no se matan.
Intenté depurarlo, pero todo parece estar bien, excepto que simplemente no funciona como se esperaba.
También intenté administrarlo a través de la configuración de Redis en redis-cli:
CONFIG SET TIMEOUT 30De esta manera, veo que la cantidad de conexiones permanece igual, pero sus valores inactivos se restablecen (como si se reconectaran justo después de que el servidor los eliminó).
Ayuda con eso por favor. Gracias por adelantado.