I lettori come te aiutano a sostenere MUO. Quando effettui un acquisto utilizzando i link sul nostro sito, potremmo guadagnare una commissione di affiliazione. Per saperne di più.

Redis è un archivio di strutture di dati in memoria, ampiamente utilizzato per la memorizzazione nella cache, l'analisi in tempo reale e l'intermediazione di messaggi. È una scelta popolare per gli sviluppatori grazie alla sua velocità fulminea e al ricco set di funzionalità.

Redis supporta molte strutture di dati tra cui stringhe, hash, elenchi, raccolte e set ordinati. Offre inoltre supporto integrato per la messaggistica di pubblicazione/sottoscrizione, supporto per le transazioni e scripting Lua.

Esistono diversi client Redis popolari per gli sviluppatori Go, ognuno con caratteristiche e funzionalità uniche. I seguenti tre client Redis sono i più popolari tra gli sviluppatori Go.

1. Il pacchetto go-redis

IL go-redis package è una popolare libreria client Go per il database Redis. Fornisce un'API semplice e facile da usare per l'interazione con Redis e il pacchetto supporta tutti i comandi Redis.

instagram viewer

Il pacchetto go-redis è popolare tra gli sviluppatori Go grazie alle sue prestazioni, affidabilità e interfaccia facile da usare. Troverai il pacchetto utile per la funzionalità da gestione della sessione al caching, all'accodamento dei messaggi e altro ancora.

Esegui questo comando nel terminale della directory del tuo progetto per installare il pacchetto go-redis.

andare scarica github.com/andare-redis/redis

Ecco come puoi importare il pacchetto go-redis nel tuo progetto.

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

Creare un'istanza di una nuova connessione a un database Redis con il pacchetto go-redis è semplice. Userai il Nuovo cliente metodo del redis pacchetto, che accetta il Opzioni struct contenente i dettagli di configurazione.

funzprincipale() {
client := redis. NuovoCliente(&redis. Opzioni{
Indirizzo: "host locale: 6379",
Parola d'ordine: " ", // nessuna password impostata
})
}

Nel principale funzione, il cliente variabile è l'istanza di connessione del client Redis. Puoi inizializzare il file Opzioni struct con ind E Parola d'ordine campi che contengono rispettivamente l'indirizzo e la password del database.

Quando crei un'istanza del client Redis, puoi eseguire il ping del database per verificare la tua connessione con il Ping metodo. Puoi usare il Risultato metodo sul metodo Ping, che restituisce lo stato e un errore.

pong, err := cliente. Ping().Risultato()

Se errare!= zero {
fmt. Stampaln (err)
ritorno
}

fmt. Println (pong, err)

Puoi aggiungere una coppia chiave-valore al tuo database con l'estensione Impostato metodo dell'istanza client. Usando il Err Il metodo su un'operazione restituisce un errore che puoi gestire.

// Imposta una chiave
err = cliente. Impostato("chiave", "valore", 0).Err()

Se errare!= zero {
fmt. Stampaln (err)
ritorno
}

È possibile recuperare un valore dal database con la chiave utilizzando il file Ottenere metodo dell'istanza client. Usando il Risultato Il metodo su un'operazione restituisce il risultato dell'operazione e un errore.

// Prendi una chiave
val, err := cliente. Ottenere("chiave").Risultato()

Se errare!= zero {
fmt. Stampaln (err)
ritorno
}

fmt. Stampaln("chiave", vale)

2. Il pacchetto Radix

IL Radice package è una libreria che fornisce un client per l'archivio della struttura dei dati in memoria di Redis. Il pacchetto Radix astrae il pacchetto Redigo per fornire un'API di facile utilizzo per l'interazione con Redis.

Il pacchetto Radix fornisce supporto per tutti i comandi Redis, incluso Sceneggiatura Lua e Pub/Sub, pool di connessioni e riconnessioni automatiche che consentono operazioni efficienti e resilienti con Redis, supporto per Cluster Redis che includono sharding e failover trasparenti e un design leggero ed efficiente che consente bassa latenza e alta portata.

Troverai il pacchetto Radix molto utile se stai cercando di aggiungere un rapido supporto Redis ai tuoi progetti Go dal Il pacchetto astrae le complessità sottostanti del protocollo Redis, rendendo la memorizzazione nella cache, la gestione delle sessioni e l'accodamento dei messaggi Più facile.

Esegui questo comando per installare la versione tre del pacchetto Radix nella directory di lavoro del progetto.

andare scarica github.com/mediocregopher/radix/v3

Ecco come puoi importare il file Radice pacchetto nel tuo programma.

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

Puoi usare il Comporre metodo del radice pacchetto per connettersi a un server Redis. IL Comporre Il metodo accetta il tipo di connessione e l'indirizzo del server Redis e restituisce un'istanza di connessione e un errore.

funzprincipale() {
//connettiti al server redis
conn, err := radice. Comporre("TCP", "host locale: 6379")

Se errare!= zero {
fmt. Stampaln (err)
ritorno
}

differire conn. Vicino()
}

Nella funzione principale, hai creato un'istanza di connessione Redis con il Comporre metodo e chiuso la connessione con il Vicino metodo e A differire dichiarazione.

Puoi eseguire i comandi Redis con il file Cmd metodo del radice pacchetto. IL Cmd Il metodo accetta un'interfaccia, un comando e i valori del comando.

err = conn. Fare (radicale. Comando(zero, "IMPOSTATO", "la mia chiave", "miovalore"))

Se errare!= zero {
fmt. Stampaln("Errore impostazione tasto: ", ehm)
} altro {
fmt. Stampaln("Chiave impostata con successo")
}

IL Fare Il metodo racchiude l'operazione e restituisce un errore.

Allo stesso modo, puoi recuperare i valori dal tuo database con il file PiattoCmd metodo. IL PiattoCmd Il metodo accetta il riferimento a una variabile, il comando e la chiave.

var val corda
err = conn. Fare (radicale. FlatCmd(&val, "OTTENERE", "la mia chiave"))

Se errare!= zero {
fmt. Stampaln("Errore durante l'acquisizione della chiave: ", ehm)
} altro {
fmt. Stampaln("Il valore di mykey è", vale)
}

Quando esegui quel codice, dovresti vedere un output simile a questo:

3. Il pacchetto Redigo

IL Redigo package è un'altra popolare libreria client Go per Redis. A differenza di Radice E Go-redis, IL Redigo package è un client leggero che fornisce un'interfaccia semplice ed efficiente per l'interazione con Redis.

Uno dei punti di forza di Redigo è la sua performance, nonostante la sua leggerezza. Redigo fornisce un'API simile alla stampa con supporto per tutti i comandi Redis e il pacchetto è comunemente utilizzato per pipelining, pub-sub, pool di connessioni e altre operazioni.

Esegui questo comando di terminale per installare il file redigo pacchetto e iniziare.

andare scarica github.com/gomodule/redigo/redis

Ecco come puoi importare il pacchetto redigo nei tuoi file di progetto.

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

Puoi usare il Comporre metodo del redis pacchetto per connettersi a un'istanza di database Redis. Il metodo Dial accetta un tipo di connessione e un indirizzo e restituisce l'istanza di connessione e un errore.

funzprincipale() {
// Connettiti all'istanza Redis
conn, err := redis. Comporre("TCP", "host locale: 6379")

Se errare!= zero {
fmt. Stampaln (err)
ritorno
}

differire conn. Vicino()
}

Nel principale function, ti sei connesso a un'istanza del database Redis in esecuzione sulla porta 6379 e chiuso il collegamento con il Vicino metodo dell'istanza di connessione e a differire dichiarazione.

È possibile eseguire operazioni Redis utilizzando il file Fare metodo della tua istanza di connessione. Il metodo Do restituisce un'interfaccia di output e un errore.

// Imposta il valore "ciao" alla chiave "messaggio"
_, err = conn. Fare("IMPOSTATO", "Messaggio", "Ciao")

Se errare!= zero {
fmt. Stampaln (err)
ritorno
}

È possibile recuperare un output di stringa di un'operazione Redis con il Corda metodo del redis pacchetto. Il metodo String accetta l'istanza dell'operazione e restituisce il valore e un errore.

// Ottieni il valore della chiave "messaggio"
valore, err := redis. Stringa (conn. Fare("OTTENERE", "Messaggio"))

Se errare!= zero {
fmt. Stampaln (err)
ritorno
}

fmt. Println (valore) // Uscita: "ciao"

È possibile utilizzare i database SQL con Go

C'è il supporto per i database e gli archivi di dati più diffusi nell'ecosistema Go. Go fornisce il pacchetto database/sql come parte della libreria standard per lavorare con i database SQL.