[vc_row el_class=”blog-info”][vc_column][vc_single_image source=”featured_image” img_size=”full” style=”vc_box_rounded”][vc_empty_space height=”40px”][vc_row_inner][vc_column_inner width=”1/6″][/vc_column_inner][vc_column_inner width=”2/3″][vc_column_text el_class=”font-weight-bold”]
Cómo usar Redis con Node.js (ioredis)
En este artículo se explica de forma corta y sencilla cómo usar Redis con Node.js a través del paquete npm ioredis.
[/vc_column_text][vc_empty_space height=”40px”][/vc_column_inner][vc_column_inner width=”1/6″][/vc_column_inner][/vc_row_inner][vc_row_inner][vc_column_inner width=”1/6″][/vc_column_inner][vc_column_inner width=”2/3″][vc_column_text]
Instalar
Instalar ioredis:
npm install ioredis
Conectar
Importar Redis:
const Redis = require('ioredis');
Conéctese a Redis con opciones:
const redis = new Redis({
host: process.env.REDIS_HOSTNAME,
port: process.env.REDIS_PORT,
password: process.env.REDIS_PASSWORD,
});
Por ejemplo, para conectarse a Redis local:
const redis = new Redis({
host: 'localhost',
port: 6379,
});
Alternativamente, Redis se puede conectar con una cadena de URL:
const redis = new Redis(process.env.REDIS_URL);
La cadena de URL tiene el formato:
redis://<REDIS_USER>:<REDIS_PASSWORD>@<REDIS_HOST>:<REDIS_PORT>
Entonces, la URL de Redis local es:
redis://localhost:6379
Comandos
set
Establecer clave con valor:
await redis.set('key', 'value'); // returns 'OK'
get
Obtener valor de la clave:
await redis.get('key'); // returns 'value'
del
Eliminar par clave-valor:
await redis.del('key'); // returns 1
Eliminar varios pares clave-valor:
await redis.del(['key1', 'key2']);
delno permite la coincidencia de patrones (*).
key
Buscar por clave:
await redis.keys('key'); // returns ['key']
Ahora buscar por claves:
await redis.keys('key1', 'key2');
await redis.keys(['key1', 'key2']);
Y ahora, buscar por patrón:
await redis.keys('k*'); // returns ['key']
Obtener todas las claves:
await redis.keys('*'); // returns ['key']
scan
El escaneo funciona mejor que keys si hay muchos datos:
await redis.scan(0, 'MATCH', '*'); // returns ['0', ['key']]
scanStream crea un ReadableStream:
const stream = redis.scanStream({ match: '*' });
let keys = [];
stream.on('data', (resultKeys) => {
keys = keys.concat(resultKeys);
});
stream.on('end', () => {
console.log(keys); // returns ['key']
});
stream.on('error', (error) => {
throw error;
});
Demo
[/vc_column_text][/vc_column_inner][vc_column_inner width=”1/6″][/vc_column_inner][/vc_row_inner][/vc_column][/vc_row][vc_row el_class=”social-info”][vc_column width=”1/6″][/vc_column][vc_column width=”2/3″][vc_row_inner][vc_column_inner width=”1/2″][vc_column_text][social_share_button themes=’theme1′][/vc_column_text][/vc_column_inner][vc_column_inner el_class=”youtube-inner-col” width=”1/2″][vc_column_text][likebtn theme=”youtube” lang=”auto” show_like_label=”0″ white_label=”1″ alignment=”right”][/vc_column_text][/vc_column_inner][/vc_row_inner][vc_row_inner el_class=”social-info-inner”][vc_column_inner width=”1/4″][vc_single_image image=”921″][/vc_column_inner][vc_column_inner width=”3/4″][vc_column_text]
Diego Pacheco
Ingeniero en Sitemas, MBA (Babson College). Desarrollador PHP/Java/JavaScript. Fundador & CEO de EpicStudio. Entusiasta de las tecnologías web (JavaScript, Vue, Laravel, AWS, Docker) Viajes, Negocios, Surf y Growth.[/vc_column_text][asvc_list_item icon_fontawesome=”fa fa-calendar-o” icon_size=”14px”]Programar una reunión[/asvc_list_item][/vc_column_inner][/vc_row_inner][/vc_column][vc_column width=”1/6″][/vc_column][/vc_row][vc_row][vc_column][vc_column_text]
Recent Post
[/vc_column_text][lvca_posts_carousel posts_query=”size:3|order_by:rand|post_type:post” image_linkable=”true” image_size=”full” taxonomy_chosen=”post_tag” display_title=”true” display_post_date=”true” display_summary=”true” autoplay_speed=”3000″ animation_speed=”300″ display_columns=”3″ scroll_columns=”3″ gutter=”3″ tablet_display_columns=”2″ tablet_scroll_columns=”2″ tablet_gutter=”3″ tablet_width=”800″ mobile_display_columns=”1″ mobile_scroll_columns=”1″ mobile_gutter=”3″ mobile_width=”480″][vc_empty_space height=”20px”][/vc_column][/vc_row]
