(摘) Redka Go开发的Redis数据库?

声明:内容源自网络,版权归原作者所有。若有侵权请在网页聊天中联系我

Redka旨在使用SQLite重新实现Redis的优秀部分,同时保持与Redis API的兼容性。
意即使用Sqlite来代替Redis。Go跨平台,所以Win/Linux可以自己编译使用。速度上比Redis慢2-5倍。

此网文介绍得比较详细。

看示例代码还是比较简单:

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)
	}
	defer db.Close()

	err = db.Str().Set("name", "alice")  // 设置一个字符串
	slog.Info("set", "err", err)
	err = db.Str().Set("age", 25)
	slog.Info("set", "err", err)

	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)
}

可以使用sqlite内存数据库

redka.Open("file:redka?mode=memory&cache=shared")

它的文档介绍的是

redka.Open("file:/data.db?vfs=memdb")

没测试。

启动一个服务器

./redka
./redka data.db
./redka -h 0.0.0.0 -p 6379 data.db

相关文章