Lezers zoals jij steunen MUO. Wanneer u een aankoop doet via links op onze site, kunnen we een aangesloten commissie verdienen. Lees verder.

Redis is een in-memory datastructuuropslag, die veel wordt gebruikt voor caching, real-time analyse en berichtbemiddeling. Het is een populaire keuze voor ontwikkelaars vanwege de razendsnelle snelheid en uitgebreide functieset.

Redis ondersteunt veel gegevensstructuren, waaronder tekenreeksen, hashes, lijsten, verzamelingen en gesorteerde sets. Het biedt ook ingebouwde ondersteuning voor publiceren/abonneren op berichten, transactieondersteuning en Lua-scripting.

Er zijn verschillende populaire Redis-clients voor Go-ontwikkelaars, elk met unieke functies en functionaliteit. De volgende drie Redis-clients zijn het populairst onder Go-ontwikkelaars.

1. Het go-redis-pakket

De go-redis pakket is een populaire Go-clientbibliotheek voor de Redis-database. Het biedt een eenvoudige, gebruiksvriendelijke API voor interactie met Redis en het pakket ondersteunt alle Redis-commando's.

instagram viewer

Het go-redis-pakket is populair onder Go-ontwikkelaars vanwege de prestaties, betrouwbaarheid en gebruiksvriendelijke interface. U zult het pakket handig vinden voor functionaliteit van sessie beheer tot caching, berichtenwachtrijen en meer.

Voer deze opdracht uit in de terminal van uw projectdirectory om het go-redis-pakket te installeren.

gaan download github.com/gaan-redis/redis

Hier leest u hoe u het go-redis-pakket in uw project kunt importeren.

importeren (
"fmt"
"github.com/go-redis/redis"
)

Een nieuwe verbinding maken met een Redis-database met het go-redis-pakket is eenvoudig. Je gebruikt de Nieuwe klant methode van de opnieuw pakket, dat de Opties struct met daarin de configuratiegegevens.

funcvoornaamst() {
klant := redis. NieuweKlant(&redis. Opties{
adres: "lokale host: 6379",
Wachtwoord: " ", // geen wachtwoord ingesteld
})
}

In de voornaamst functie, de cliënt variabele is de verbindingsinstantie van de Redis-client. U kunt de initialisatie uitvoeren Opties structureren met adres En Wachtwoord velden die respectievelijk het databaseadres en wachtwoord bevatten.

Bij het maken van een Redis-clientinstantie kunt u de database pingen om uw verbinding met de Ping methode. U kunt de Resultaat methode op de Ping-methode, die de status en een fout retourneert.

pong, err := klant. Ping().Resultaat()

als fout!= nihil {
fmt. Println (fout)
opbrengst
}

fmt. Println (pong, fout)

U kunt een sleutel-waardepaar aan uw database toevoegen met de Set methode van uw clientinstantie. De... gebruiken Err methode op een bewerking retourneert een fout die u aankunt.

// Stel een sleutel in
fout = klant. Set("sleutel", "waarde", 0).Fout()

als fout!= nihil {
fmt. Println (fout)
opbrengst
}

U kunt een waarde uit de database halen met de sleutel met behulp van de Krijgen methode van uw clientinstantie. De... gebruiken Resultaat methode op een bewerking retourneert het resultaat van de bewerking en een fout.

// Haal een sleutel
val, err := klant. Krijgen("sleutel").Resultaat()

als fout!= nihil {
fmt. Println (fout)
opbrengst
}

fmt. Println("sleutel", waard)

2. Het Radix-pakket

De Radix pakket is een bibliotheek die een client levert voor de Redis in-memory datastructuuropslag. Het Radix-pakket abstraheert het Redigo-pakket om een ​​gebruiksvriendelijke API te bieden voor interactie met Redis.

Het Radix-pakket biedt ondersteuning voor alle Redis-commando's, inclusief Lua-scripting en Pub/Sub, pooling van verbindingen en automatische herverbindingen die efficiënte en veerkrachtige bewerkingen mogelijk maken met Redis, ondersteuning voor Redis-clusters inclusief transparante sharding en failover, en een lichtgewicht, efficiënt ontwerp dat lage latentie en hoge doorvoer.

U zult het Radix-pakket erg handig vinden als u snelle Redis-ondersteuning wilt toevoegen aan uw Go-projecten sinds de pakket abstraheert de onderliggende complexiteit van het Redis-protocol, waardoor caching, sessiebeheer en berichtwachtrijen worden gemaakt gemakkelijker.

Voer deze opdracht uit om versie drie van het Radix-pakket in uw projectwerkdirectory te installeren.

gaan download github.com/mediocregopher/radix/v3

Hier leest u hoe u de Radix pakket in je programma.

importeren (
"fmt"
"github.com/mediocregopher/radix/v3"
)

U kunt de Bellen methode van de radix pakket om verbinding te maken met een Redis-server. De Bellen methode accepteert het verbindingstype en het adres van de Redis-server en retourneert een verbindingsinstantie en fout.

funcvoornaamst() {
// maak verbinding met de redis-server
conn, fout := radix. bellen("tcp", "lokale host: 6379")

als fout!= nihil {
fmt. Println (fout)
opbrengst
}

verschuiven verbind. Dichtbij()
}

In de hoofdfunctie hebt u een Redis-verbindingsinstantie gemaakt met de Bellen methode en sloot de verbinding met de Dichtbij methode en een verschuiven stelling.

U kunt Redis-opdrachten uitvoeren met de Cmd methode van de radix pakket. De Cmd methode accepteert een interface, een opdracht en de waarden van de opdracht.

err = conn. Doen (radix. Cmd(nihil, "SET", "mijn sleutel", "mijnwaarde"))

als fout!= nihil {
fmt. Println("Fout instelling sleutel: ", fout)
} anders {
fmt. Println("Sleutel succesvol ingesteld")
}

De Doen methode sluit de bewerking in en retourneert een fout.

Op dezelfde manier kunt u waarden uit uw database ophalen met de FlatCmd methode. De FlatCmd methode neemt de verwijzing naar een variabele, het commando en de sleutel op.

var val snaar
err = conn. Doen (radix. FlatCmd(&val, "KRIJGEN", "mijn sleutel"))

als fout!= nihil {
fmt. Println("Fout bij ophalen sleutel: ", fout)
} anders {
fmt. Println("Waarde van mykey is", waard)
}

Wanneer u die code uitvoert, zou u uitvoer moeten zien die er ongeveer zo uitziet:

3. Het Redigo-pakket

De Redigo pakket is een andere populaire Go-clientbibliotheek voor Redis. in tegenstelling tot Radix En Go-redis, de Redigo pakket is een lichtgewicht client die een eenvoudige en efficiënte interface biedt voor interactie met Redis.

Een van de verkoopargumenten van Redigo zijn de prestaties, ondanks het lichte gewicht. Redigo biedt een afdrukachtige API met ondersteuning voor alle Redis-opdrachten, en het pakket wordt in de volksmond gebruikt voor pipelining, pub-sub, pooling van verbindingen en andere bewerkingen.

Voer deze terminalopdracht uit om het redigo inpakken en aan de slag.

gaan ga naar github.com/gomodule/redigo/redis

Hier leest u hoe u het redigo-pakket in uw projectbestanden kunt importeren.

importeren (
"fmt"
"github.com/gomodule/redigo/redis"
)

U kunt de Bellen methode van de opnieuw pakket om verbinding te maken met een Redis-database-instantie. De methode Dial neemt een verbindingstype en een adres op en retourneert de verbindingsinstantie en een fout.

funcvoornaamst() {
// Maak verbinding met de Redis-instantie
conn, err := redis. bellen("tcp", "lokale host: 6379")

als fout!= nihil {
fmt. Println (fout)
opbrengst
}

verschuiven verbind. Dichtbij()
}

In de voornaamst functie, hebt u verbinding gemaakt met een Redis-database-instantie die op poort draait 6379 en sloot de verbinding met de Dichtbij methode van de verbindingsinstantie en a verschuiven stelling.

U kunt Redis-bewerkingen uitvoeren met behulp van de Doen methode van uw verbindingsinstantie. De Do-methode retourneert een uitvoerinterface en een fout.

// Stel de waarde "hallo" in op de sleutel "bericht"
_, fout = conn. Doen("SET", "bericht", "Hallo")

als fout!= nihil {
fmt. Println (fout)
opbrengst
}

U kunt een tekenreeksuitvoer van een Redis-bewerking ophalen met de Snaar methode van de opnieuw pakket. De String-methode gebruikt de bewerkingsinstantie en retourneert de waarde en een fout.

// Krijg de waarde van de sleutel "bericht"
waarde, err := redis. String (aansl. Doen("KRIJGEN", "bericht"))

als fout!= nihil {
fmt. Println (fout)
opbrengst
}

fmt. Println (waarde) // Uitvoer: "hallo"

U kunt SQL-databases gebruiken met Go

Er is ondersteuning voor populaire databases en datastores in het Go-ecosysteem. Go levert het database/sql-pakket als onderdeel van de standaardbibliotheek voor het werken met SQL-databases.