Redis -modulbelastning og loss

Redis -modulbelastning og loss

Redis -moduler forklarte

Redis tilbyr som standard flere datatyper og enorme kommandoer for å operere på disse datastrukturene. Med veksten av kompleksiteten i moderne applikasjoner øker etterspørselen etter de nye Redis -kommandoene og strukturene.

Redis -moduler er ment å fylle dette gapet mellom de eksisterende Redis -funksjonalitetene og den økende etterspørselen etter nye funksjonskrav. De kan forbedre de eksisterende Redis -funksjonalitetene med nye kommandoer og datastrukturer som gir avanserte funksjonaliteter uten å endre Redis -kjernekoden.

De fleste av Redis -modulene er skrevet på C -språk ved å eksportere C API som en enkelt overskriftsfil kalt “Redismodule.h ”. I tillegg kan språk som C ++ som støtter C -bindinger brukes til å implementere Redis -modulene.

Den gitte illustrasjonen på høyt nivå skildrer hvordan modulene integreres med Redis Core ved bruk av Modules API. Videre er Modules API der mesteparten av innsatsen ble gjort. Det abstraherer og isolerer Redis Internals fra modulene og fungerer som serverens C-bindende kontrakt. I tillegg er en modul registrert i Redis -kjernen med en spesifikk modul API -versjon.

Som et eksempel kan du lage din egen HEI VERDEN modul med en SKRIVE UT kommando på toppen av ekkokommandoen som kommer fra Redis Core. Det ser ut som følgende:

Som du kan se på illustrasjonen, kan du alltid kommunisere eller kalle Redis Core -kommandoer og datastrukturer ved hjelp av Modules API og forbedre den eksisterende funksjonaliteten med din egen kommando eller struktur som i Helloworld modul.

Det meste av arbeidet er med implementering av modul med C -språk ved å konsumere Modules API når det er nødvendig. Deretter handler det om å laste den kompilerte modulen til Redis -serveren ved kjøretid eller bruke Redis.Konfigurasjonsfildirektiv.

I denne guiden vil vi ikke fokusere på modulutvikling med C eller C ++, men diskuter mer om lasting og lossing av tilgjengelige Redis -moduler. Noen av de bredt populære Redis -modulene er oppført i følgende:

  • Redisearch - fulltekstsøking
  • Redsijson - JSON -datatypen for Redis
  • Redisgraph - En grafdatabase for Redis
  • Neural Redis - Et nevralt nettverk

Redis -modullasting og lossing

I dag finner du en rekke forhåndsutviklede moduler i Redis Modules-biblioteket som er utviklet for forskjellige formål og krav. For å konsumere en eller flere moduler i applikasjonen din, må den lastes til Redis -serveren først.

Redis Module Load Command

Modulbelastningskommandoen er en innebygd Redis-kommando som brukes til å laste inn en gitt modul fra et dynamisk bibliotek. I tillegg gjør denne kommandoen også modulinitialiseringsprosessen. Denne kommandoen godtar et baneargument som spesifiserer plasseringen av modulbiblioteket med modulnavnet. Viktigst av alt er at kommandoen har konstant tidskompleksitet som fungerer raskt.

Syntaks:

Module Load Module_Path [arg [arg…]]

Module_path: Den absolutte stedsveien til biblioteket med modulfilnavnet.

Arg: Ytterligere argumenter kan sendes til modulen, men den er ikke obligatorisk.

Før du laster inn modulen, er det et must å klone modulens kildekode og bygge som vil produsere en ".så ”fil. Dette “.så "filens beliggenhet må leveres som sti argument.

Hvis modulen er lastet ordentlig, er Ok Strengsvar returneres.

På den annen side kan det hende at en lastet modul også må losses. I så fall kan modulen lossing gjøres ved runtime ved hjelp av modulen losset kommando.

Redis -modulen losset kommando

Modulen laster ut kommandoen kobler fra en allerede lastet redis -modul fra serveren. Denne kommandoen godtar bare ett obligatorisk argument som er navnet på modulen. Navnet på modulen skal være den som er rapportert av modulliste -kommandoen. Så det er viktig å huske på at dette navnet kan være forskjellig fra det som vises i modulbibliotekets filnavn.

Syntaks:

Modul losset modulnavn

Modul_name: Modulnavnet rapportert av modullistekommandoen som vist i følgende:

En ting å merke seg er at de tilpassede datastrukturene som er registrert med en modul ikke kan losses med modulen Load -kommandoen.

Konklusjon

For å konkludere, brukes Redis -moduler for å utvide funksjonaliteten til Redis Core -kommandoer og strukturer. Som nevnt er en modul en enkelt enhet som er bygget på toppen av eksisterende Redis-kommando (er) eller struktur (er) ved bruk av C-bindende språk som C eller C++. Den bruker sterkt Redis -modulene API for å kommunisere med kjerne- og andre moduler. I henhold til den gitte forklaringen, for å bruke en allerede implementert Redis -modul i applikasjonen din, må den lastes inn ved hjelp av modulbelastningskommandoen ved runtime. Tilsvarende gjøres lossingen av modulen Load -kommandoen.