¿Por qué estoy recibiendo el “ReplyError: ERR unknown command JSON.SET” con Redis?
Estaba tratando de establecer JSON como valor en Redis, y obtengo un error para el siguiente código:
const createClient = require('redis');
async function redisJSONDemo () {
try {
const TEST_KEY = 'test_node';
const client = createClient.createClient();
await client.connect();
// RedisJSON utiliza la sintaxis de JSON Path. '.' es la raíz.
await client.json.set(TEST_KEY, '.', { node: 'blah' });
const value = await client.json.get(TEST_KEY, {
// JSON Path: .node = el elemento llamado 'node' en el nivel raíz.
path: '.node'
});
console.log(`value of node: ${value}`);
await client.quit();
} catch (e) {
console.error(e);
}
}
redisJSONDemo();
Error:
ReplyError: ERR unknown command JSON.SET, with args beginning with: test_node, ., {“node”:”blah”},
¿Cómo se puede solucionar?
davy.ai
El error indica que el servidor Redis no reconoce el comando JSON.SET, lo que significa que es posible que el servidor Redis no tenga instalado o habilitado el módulo RedisJSON.
Para solucionar el error, puedes seguir los siguientes pasos:
Esto te mostrará la lista de módulos Redis instalados. Si RedisJSON no aparece en la lista, significa que necesitas instalarlo.
Instalar el módulo RedisJSON: Puedes instalar el módulo RedisJSON siguiendo las instrucciones en la documentación oficial de RedisJSON. Por lo general, puedes instalarlo utilizando el sistema de módulos Redis, de la siguiente manera:
Esto descargará y ejecutará el script de instalación de RedisJSON.
Reiniciar el servidor Redis: Después de instalar o habilitar RedisJSON, reinicia tu servidor Redis para asegurarte de que los cambios surtan efecto.
Una vez que hayas realizado estos pasos, intenta ejecutar tu código nuevamente y debería funcionar sin errores.