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.
- 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
- Emmagatzema un document JSON que representi un producte amb camps com
id
,name
,price
istock
. - Actualitza el preu del producte.
- Consulta només el camp
name
del producte.
- 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
- Crea nodes que representin persones amb noms i edats.
- Crea arestes que representin relacions d'amistat entre aquestes persones.
- Consulta totes les persones que són amigues d'una persona específica.
- 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
- Crea un filtre de Bloom per a emmagatzemar adreces de correu electrònic.
- Afegeix diverses adreces de correu electrònic al filtre.
- Comprova si una adreça de correu electrònic específica està present al filtre.
- 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
- Crea una sèrie temporal per a emmagatzemar temperatures d'una habitació.
- Afegeix diverses lectures de temperatura a la sèrie temporal.
- 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.
Curs de Redis
Mòdul 1: Introducció a Redis
Mòdul 2: Estructures de Dades de Redis
Mòdul 3: Comandes i Operacions de Redis
Mòdul 4: Persistència de Redis
- Instantànies (RDB)
- Fitxers Només de Afegeix (AOF)
- Configuració de la Persistència
- Còpia de Seguretat i Restauració
Mòdul 5: Seguretat de Redis
Mòdul 6: Optimització del Rendiment de Redis
Mòdul 7: Clúster i Alta Disponibilitat de Redis
Mòdul 8: Mòduls i Extensions de Redis
- Introducció als Mòduls de Redis
- Mòduls Populars de Redis
- Creant Mòduls Personalitzats
- Utilitzant Redis amb Altres Tecnologies