Valkey: Exemplo: Utilizar a pesquisa Valkey em Node.js

Esta documentação faz parte do guia Pesquisa e JSON. Consulte o guia completo aqui: Armazene e consulte documentos JSON com o módulo de pesquisa Valkey.

👋 Bem-vindo à documentação da Stackhero!

A Stackhero disponibiliza uma solução Valkey cloud pronta a usar, que oferece várias vantagens, incluindo:

  • Interface web Valkey Admin incluída.
  • Tamanho e transferências de mensagens ilimitados.
  • Atualizações fáceis com apenas um clique.
  • Performance otimizada e segurança reforçada graças a uma infraestrutura privada e dedicada.

Poupe tempo e simplifique a sua vida: bastam 5 minutos para experimentar a solução de Valkey cloud hosting da Stackhero!

Como o Valkey utiliza o mesmo protocolo que o Redis, qualquer cliente Redis é compatível. Pode usar este exemplo com o cliente oficial node-redis:

import { createClient, SCHEMA_FIELD_TYPE } from 'redis';

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

// Criar o índice uma vez no arranque
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();