v0.7.0

快速上手: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 模式關閉連線池。

相關頁面

EN