Estoy aprendiendo el libro Redis Essentials de Maxwell Dayvson Da Silva y Hugo Lopes Tavares. Le dice a redis en node.js. El node.js de este libro es muy antiguo, es decir, v0.12.4. Y mi node.js en mi Ubuntu 20.04 es v10.19.0. Estoy trabajando en python ahora. Pero estoy familiarizado con JS en los navegadores, y con la esperanza de poder hacerlo, decidí probar el node.js. ¿Podría decirme por qué el siguiente código no tiene ningún resultado cuando puedo hacer ping-pong en redis-cli? Como abajo:
$ redis-cli 127.0.0.1:6379> ping PONG 127.0.0.1:6379> SET key001 value001 OK 127.0.0.1:6379> GET key001 "value001" 127.0.0.1:6379> QUIT $ node hello.js $(He solucionado el problema entre la línea 2 y la línea 3, es decir, conexión explícita).
(Siento que la causa raíz puede ser que mi versión de node.js es demasiado superior a la del libro. Supongo que el proceso finaliza antes de que se ejecute la impresión. Pero no estoy familiarizado con el node.js actual. ¡Ayúdenme!)
//hello.js var redis = require("redis"); // 1 var client = redis.createClient(); // 2 client.connect(); // Important: explict conn is needed now! client.set("my_key", "Hello World using Node.js and Redis"); // 3 client.get("my_key", redis.print); // 4 client.quit(); // 5Esto se debe a que la implementación del redis client en nodejs utiliza el enfoque Asyc/Await .
Por lo tanto, es posible que deba hacer algo como lo siguiente en su lugar.
(async () => { const client = createClient(); client.on('error', (err) => console.log('Redis Client Error', err)); await client.connect(); await client.set('key', 'value'); const value = await client.get('key'); await client.quit(); })();Referencia: https://github.com/redis/node-redis