En aquest tema, explorarem alguns dels mòduls més populars de Redis que amplien les seves funcionalitats bàsiques. Els mòduls de Redis permeten afegir noves capacitats al servidor Redis, com ara nous tipus de dades, comandes personalitzades i integracions amb altres tecnologies.

  1. RedisJSON

Descripció

RedisJSON és un mòdul que permet emmagatzemar, actualitzar i consultar documents JSON a Redis. És ideal per a aplicacions que necessiten treballar amb dades estructurades en format JSON.

Característiques Clau

  • Emmagatzematge de JSON: Permet emmagatzemar documents JSON complets.
  • Consultes JSON: Suporta consultes avançades sobre documents JSON.
  • Actualitzacions Parcials: Permet actualitzar parts específiques d'un document JSON sense haver de reescriure tot el document.

Exemple Pràctic

# Emmagatzemar un document JSON
JSON.SET user:1001 $ '{"name": "John Doe", "age": 30, "email": "[email protected]"}'

# Obtenir el document complet
JSON.GET user:1001

# Actualitzar l'edat del usuari
JSON.SET user:1001 $.age 31

# Obtenir només el camp 'name'
JSON.GET user:1001 $.name

Exercici Pràctic

  1. Emmagatzema un document JSON que representi un producte amb camps com id, name, price i stock.
  2. Actualitza el preu del producte.
  3. Consulta només el camp name del producte.

  1. RedisGraph

Descripció

RedisGraph és un mòdul que proporciona una base de dades de gràfics a Redis. Utilitza una representació de gràfics basada en matrius d'adjacència i permet executar consultes de gràfics utilitzant el llenguatge Cypher.

Característiques Clau

  • Model de Dades de Gràfics: Permet emmagatzemar nodes i arestes amb propietats.
  • Consultes Cypher: Suporta el llenguatge de consultes Cypher per a operacions de gràfics.
  • Alt Rendiment: Optimitzat per a consultes ràpides i eficients.

Exemple Pràctic

# Crear nodes
GRAPH.QUERY social "CREATE (:Person {name: 'Alice'})"
GRAPH.QUERY social "CREATE (:Person {name: 'Bob'})"

# Crear una aresta
GRAPH.QUERY social "MATCH (a:Person {name: 'Alice'}), (b:Person {name: 'Bob'}) CREATE (a)-[:FRIEND]->(b)"

# Consultar el gràfic
GRAPH.QUERY social "MATCH (a:Person)-[:FRIEND]->(b:Person) RETURN a.name, b.name"

Exercici Pràctic

  1. Crea nodes que representin persones amb noms i edats.
  2. Crea arestes que representin relacions d'amistat entre aquestes persones.
  3. Consulta totes les persones que són amigues d'una persona específica.

  1. RedisBloom

Descripció

RedisBloom és un mòdul que proporciona estructures de dades probabilístiques com els filtres de Bloom, els filtres de Cuckoo, els HyperLogLogs i els sketches de quantils. Aquestes estructures són útils per a aplicacions que necessiten emmagatzemar grans volums de dades amb un ús eficient de la memòria.

Característiques Clau

  • Filtres de Bloom: Permeten comprovar la presència d'un element amb una certa probabilitat d'error.
  • Filtres de Cuckoo: Similar als filtres de Bloom però amb suport per a eliminacions.
  • HyperLogLogs: Permeten comptar elements únics en grans conjunts de dades amb un ús mínim de memòria.
  • Sketches de Quantils: Permeten estimar distribucions de dades.

Exemple Pràctic

# Crear un filtre de Bloom
BF.RESERVE mybloom 0.01 1000

# Afegir elements al filtre
BF.ADD mybloom "foo"
BF.ADD mybloom "bar"

# Comprovar la presència d'elements
BF.EXISTS mybloom "foo"  # Retorna 1
BF.EXISTS mybloom "baz"  # Retorna 0

Exercici Pràctic

  1. Crea un filtre de Bloom per a emmagatzemar adreces de correu electrònic.
  2. Afegeix diverses adreces de correu electrònic al filtre.
  3. Comprova si una adreça de correu electrònic específica està present al filtre.

  1. RedisTimeSeries

Descripció

RedisTimeSeries és un mòdul que facilita l'emmagatzematge i la gestió de sèries temporals a Redis. És ideal per a aplicacions que necessiten emmagatzemar dades amb marques de temps, com ara dades de sensors, mètriques de rendiment, etc.

Característiques Clau

  • Emmagatzematge de Sèries Temporals: Permet emmagatzemar dades amb marques de temps.
  • Agregacions: Suporta operacions d'agregació com mitjanes, màxims, mínims, etc.
  • Consultes de Rang: Permet consultar dades en rangs de temps específics.

Exemple Pràctic

# Crear una sèrie temporal
TS.CREATE temperature:room1

# Afegir dades a la sèrie temporal
TS.ADD temperature:room1 * 22.5
TS.ADD temperature:room1 * 23.0

# Consultar dades en un rang de temps
TS.RANGE temperature:room1 - +

Exercici Pràctic

  1. Crea una sèrie temporal per a emmagatzemar temperatures d'una habitació.
  2. Afegeix diverses lectures de temperatura a la sèrie temporal.
  3. Consulta les temperatures en un rang de temps específic.

Conclusió

Els mòduls de Redis amplien significativament les capacitats del servidor Redis, permetent als desenvolupadors abordar una àmplia gamma de casos d'ús amb eficiència i flexibilitat. En aquest tema, hem explorat alguns dels mòduls més populars, com RedisJSON, RedisGraph, RedisBloom i RedisTimeSeries, i hem vist com utilitzar-los amb exemples pràctics. Aquests mòduls poden ser molt útils per a les vostres aplicacions, proporcionant funcionalitats avançades que van més enllà de les capacitats bàsiques de Redis.

© Copyright 2024. Tots els drets reservats