Introduzione a Redka, database alternativo a Redis per Go
Non è ormai una novità il cambio di licenza di Redis.
Da quel momento sono nati parecchi fork, tra cui Redka!
Sostanzialmente è un clone compatibile con Redis che si appoggia SQLite.
Supporta sia i db in memory che persistenti.
In questo articolo vediamo un esempio base.
Per l'installazione su Linux:
$ curl -L -O "https://github.com/nalgeon/redka/releases/download/v0.2.0/redka_linux_amd64.zip"
$ unzip redka_linux_amd64.zip
$ chmod +x redka
Si compone di un singolo file binario; io l'ho messo nella stessa cartella del mio progetto Go ed avviato così:
$ ./redka -h 0.0.0.0 -p 6379 data.db
In questo modo il db viene salvato insieme ai file del progetto.
Poi dobbiamo installare due librerie per Go:
$ go get github.com/nalgeon/redka
$ go get github.com/mattn/go-sqlite3
Qui sotto un esempio di codice per cominciare (perso direttamente dalla documentazione):
package main
import (
"log"
"log/slog"
_ "github.com/mattn/go-sqlite3"
"github.com/nalgeon/redka"
)
func main() {
db, err := redka.Open("data.db", nil)
if err != nil {
log.Fatal(err)
}
db.Str().Set("name", "alice")
db.Str().Set("age", 25)
count, err := db.Key().Count("name", "age", "city")
slog.Info("count", "count", count, "err", err)
name, err := db.Str().Get("name")
slog.Info("get", "name", name, "err", err)
defer db.Close()
}
Essendo ancora in fase di sviluppo, non sono andato a questo semplice test.
Volevo vedere se funzionava facilmente; direi di si, quindi per ora i miei test si fermano qui!
Enjoy!
go database redka sqlite
Commentami!