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