快速上手:Socket Daemon
最後更新
本頁示範以 daemon.New 開啟 ToriiDB 資料目錄;多個 process 共用同一目錄時使用這個入口。
使用 Socket Daemon
當可能有多個 process 存取同一資料目錄時,建議以 daemon.New 為進入點。第一個 process 開啟 store 並提供 unix socket;之後在同目錄呼叫 New 的都成為該 socket 的 client。兩種情況下程式碼呼叫的方法完全相同。
package main
import (
"context"
"fmt"
"log"
"github.com/pardnchiu/toriidb/core/daemon"
)
func main() {
ctx := context.Background()
d, err := daemon.New("./data")
if err != nil {
log.Fatal(err)
}
defer d.Close()
if err := d.Start(); err != nil {
log.Fatal(err)
}
if err := d.Set(ctx, 0, "user:1", map[string]any{"name": "Torii", "level": 1}, nil); err != nil {
log.Fatal(err)
}
record, err := d.Get(ctx, 0, "user:1")
if err != nil {
log.Fatal(err)
}
value, _ := record.Value()
fmt.Println(record.Type, value)
}
Start 不會阻塞,client 模式下不做任何事。Close 在 server 模式停止 listener 並關閉 store,在 client 模式關閉連線池。