Valkey: Esempio: Utilizzo della ricerca Valkey in Node.js

Questa documentazione fa parte della guida Ricerca e JSON. Consulta la guida completa qui: Archivia e interroga documenti JSON con il modulo di ricerca Valkey.

👋 Benvenuto nella documentazione di Stackhero!

Stackhero offre una soluzione Valkey cloud pronta all'uso che garantisce numerosi vantaggi, tra cui:

  • Interfaccia web Valkey Admin inclusa.
  • Dimensione e trasferimento dei messaggi illimitati.
  • Aggiornamenti semplici con un solo clic.
  • Prestazioni ottimali e sicurezza avanzata grazie a un'infrastruttura privata e dedicata.

Risparmia tempo e semplificati la vita: bastano 5 minuti per provare la soluzione Valkey cloud hosting di Stackhero!

Poiché Valkey utilizza lo stesso protocollo di Redis, qualsiasi client Redis è compatibile. Puoi utilizzare questo esempio con il client node-redis ufficiale:

import { createClient, SCHEMA_FIELD_TYPE } from 'redis';

const client = createClient({ url: process.env.STACKHERO_VALKEY_URL_TLS });
await client.connect();

// Crea l'indice una sola volta all'avvio
try {
  await client.ft.create(
    'productsIndex',
    {
      name: SCHEMA_FIELD_TYPE.TEXT,
      brand: SCHEMA_FIELD_TYPE.TAG,
      price: SCHEMA_FIELD_TYPE.NUMERIC
    },
    { ON: 'HASH', PREFIX: 'product:' }
  );
} catch (error) {
  if (!error.message.includes('Index already exists')) {
    throw error;
  }
}

await client.hSet('product:1', { name: 'Espresso machine', brand: 'Bianca', price: '459' });

const results = await client.ft.search('productsIndex', '@brand:{Bianca} @price:[0 500]');
console.log(results.total, results.documents);

await client.quit();