Programmering

Brug af Redis Enterprise i Azure

NoSQL-opbevaring findes i mange typer. Nogle er dokumentdatabaser, andre gemmer nøgle / værdipar, som alle understøtter mange forskellige typer indeks og forespørgsel. Der er diskbaserede systemer og systemer designet til at arbejde i hukommelsen. Nogle håndterer store mængder data effektivt; andre fokuserer på at levere hastighed. Med så mange forskellige produkter er det undertiden svært at vælge et.

Et af de mere populære hukommelsessystemer er Redis, Remote Dictionary Server. Det er bygget på open source Redis-serveren, sponsoreret af RedisLabs, med et sæt kommercielle virksomhedsindstillinger. Microsoft har i nogen tid tilbudt sin egen implementering af open source Redis på Azure, hvor det hovedsageligt bruges som en højtydende cache. Imidlertid annoncerede den for nylig et partnerskab med RedisLabs, der bringer en fuldt administreret Redis Enterprise-stak til Microsofts sky.

Tilføjelse af Redis Enterprise til Azure

Den nye tjeneste er måske bedst tænkt på at tilføje to nye niveauer til de eksisterende Basic-, Standard- og Premium-tjenester: Enterprise og Enterprise SSD. Microsofts Redis-implementering har været fokuseret på at levere en højtydende cache til dine data i store cloud-native applikationer, hvor cachen hjælper med at administrere meddelelser til begivenhedsdrevet kode eller sessionstilstand, når du bygger containere eller serverløse systemer.

Cache er ikke kun til styring af indgående data. Moderne apps kan bruge dem som en måde at forudindlæse indhold, som brugere regelmæssigt har adgang til. Du kan forudindlæse Azure's Redis med dine almindelige aktiver, såsom overskrifter og logoer, som ikke ændres så ofte. Ved at være vært for dem i hukommelsen kan de leveres meget hurtigere, snarere end at trække dem fra disken, hver gang en side indlæses.

Brug af Redis handler om ydeevne. At placere dine cachedata i et hukommelsessystem kan reducere applikationsforsinkelsen betydeligt, især når du bygger og kører distribuerede applikationer i stor skala. Indhold i Redis-butikker kan replikeres mellem Azure-regioner, hvilket reducerer risikoen for, at brugere i en region skal have adgang til indhold, der er gemt halvdelen af ​​verden væk.

Startende med Azure Cache til Redis

Microsofts open source-implementering, Azure Cache til Redis, kommer i Basic, Standard og Premium med en maksimal størrelse på 1,2 TB til Premium-databaser. Basic er en relativt enkel implementering af en enkelt node uden SLA men et valg af hukommelsesstørrelser. Standard giver dig mere pålidelighed ved at implementere et to-node-system og tilføje en SLA. Hvis du har brug for bedre ydeevne og lavere latenstid, bruger Premium-indstillingen en anden klasse af Azure-hardware, hvilket giver højere kapacitet end standard for hvad der ellers ville være den samme konfiguration.

Det er let nok at oprette en Redis-cache i Azure. Start med et DNS-navn, føj derefter cachen til en ressourcegruppe, og vælg en placering. Dette opretter de underliggende virtuelle maskiner og starter din cache; når Azure rapporterer det som kørende, kan du bruge det i din kode. De legitimationsoplysninger, der er nødvendige for at oprette forbindelse til Redis, findes i din Azure Portal med adgangsnøgler og forbindelsesstrenge. Portalen viser adressen på din forekomst plus den port, din kode skal oprette forbindelse til. Som standard sker dette via SSL.

Der er forskellige NuGet-pakker til brug af Redis med dine .NET-applikationer, med opkald til at hente og indstille emner i Redis-cachen samt til at kontrollere, at din applikation er forbundet til Redis. Alt hvad du skal gøre er at indstille din cache-forbindelsesstreng og derefter bruge den til at oprette et cache-objekt fra din Redis-database. Hvis du bruger Visual Studio, kan du arbejde med Redis ved hjælp af velkendte .NET-databaseværktøjer såsom Entity Framework.

Redis-baserede applikationer er nemme at implementere ved hjælp af MVC-mønstre (model, visning og controller) ved hjælp af controllere til at skrive serielle data i cachen og læse dem, når det er nødvendigt. Microsoft anbefaler, at du bruger JSON-formater til at skrive og læse data, med returnerede JSON-data, der er lette at formatere og vise ved hjælp af almindelige JavaScript- og .NET-biblioteker.

Azure Cache til Redis er mere end en database og et sæt API'er, da det indeholder et komplet sæt administrationsværktøjer, herunder overvågning. Disse kan hjælpe dig med at skalere din Redis-forekomst efter behov. Du kan kun skalere niveauer op og flytte fra Basic til Standard til Premium.

Alle størrelsesændringer er en separat handling, og du kan ændre størrelse op eller ned inden for samme niveau (med det forbehold, at du ikke kan skalere ned til det mindste standardstørrelsesudbud). Hvis du vil gå ned i et niveau, skal du oprette en ny Redis-forekomst og derefter kopiere data eller strukturer til den nye database, før du sletter den ældre version. Hvis du har brug for at automatisere skalering, kan du bruge PowerShell eller Azure CLI eller med kode ved hjælp af Azure Management Libraries.

Skalerer op til Redis Enterprise's in-memory database-funktioner

Azures Redis-implementering er god, men det er ikke hele historien. Det er baseret på open source Redis, så det har ikke alle funktionerne i det kommercielle Redis Enterprise. Derfor samarbejdede Microsoft og Redis om at levere to ekstra niveauer, administreret af Microsoft og understøttet af begge virksomheder, med fuld integration i Azure Portal. Enterprise, basisenheden, bruger standard Azure-lager, mens Enterprise SSD-niveauet tilføjer understøttelse af flashlagring for hurtigere adgang til data, der ikke er tilgængelige i hukommelsen.

I øjeblikket i en privat forhåndsvisning tilføjer den nye tjeneste understøttelse af vigtige Redis Enterprise-moduler, så du kan bruge tjenesten til meget mere end rent cachelagrede data. Det er en vigtig skelnen, da en hurtig database i hukommelsen er en vigtig del af et begivenhedsdrevet system i stor skala, især et, der er afhængigt af tidsseriedata. Andre understøttede funktioner inkluderer RedisBloom, som tilføjer probabilistisk datafiltrering og RediSearch, som forbedrer indeksering og giver dig mulighed for at bruge søgning i fuld tekst på dine data.

Yderligere funktioner tilføjes, når tjenesten flytter fra privat forhåndsvisning til generel tilgængelighed (planlagt i slutningen af ​​2020). Disse giver dig mulighed for at bruge aktiv-aktiv replikering mellem geografiske regioner og hybridinstallationer, der fungerer mellem private og Azure-hostede Redis-forekomster. Der er ikke behov for at have en dedikeret forbindelse mellem lokalt og Azure Redis; aktiv-aktiv replikering fungerer over en VPN.

Den nye Redis Enterprise-implementering ligner den eksisterende Azure Cache til Redis inde i portalen, og du vil kunne skalere op fra eksisterende forekomster eller starte fra bunden. Hvis du leder efter bedre ydeevne, er opskalering en mulighed, men du vil sandsynligvis oprette en helt ny forekomst, hvis du bruger nogen af ​​de nye databasefunktioner. Du kan aktivere dem som en del af oprettelsesprocessen fra portalen eller via en Azure Resource Manager-skabelon. Selvom meget af din ledelse og overvågning kommer fra Azure Portal, har du muligheden for at bruge Redis 'egne styringsværktøjer til at hjælpe med at tune og optimere dine data.

Kombinationen af ​​Azure's Redis-implementering og RedisLabs 'Redis Enterprise er interessant, der viser, hvordan en leverandør med et premium-tilbud bygget på et open source-fundament kan eksistere sammen med hyperskala-skyer. Azure er i stand til at tilbyde en service baseret på open source-platformen, mens mere komplekse implementeringer kan bruge RedisLabs 'værktøjer. Denne rute giver virksomheden adgang til en ny indtægtsstrøm uden at skulle ændre sin licensmodel til en, der lukker skyudbydere.

Med en simpel sti fra Azures Redis-baserede cachetjeneste til Redis Enterprise og uden ændringer i styringsværktøjer eller faktureringsforhold er den også gennemsigtig for slutbrugere. De får adgang til nye niveauer og nye funktioner uden at skulle ændre den måde, de arbejder på.