Introduzione a Redka, database alternativo a Redis per Go

Mattepuffo's logo
Introduzione a Redka, database alternativo a Redis per Go

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!


Condividi

Commentami!