分享一个 Golang 的 KV 库, 支持多进程多线程,支持在 samba 的文件夹上创建数据库

2016-03-04 13:00:43 +08:00
 china521

程序不需要大量的 KV 键保存, 但需要保存到共享目录上,还得支持多进程, 好多优秀的数据库不能在这样的环境下运行...

没几行代码.就自己撸了个, 分享给大家, 相信有些 V 友会遇见这样的需求情况

https://github.com/zeropool/go-dkv

用的着的 Star 一下,哈哈.

go-dkv

Golang simple KV Database use system's file system

Features:
- Support create a database in a samba directory
- Support Multi-process, Multi-thread

package main

import (
    "fmt"

    "github.com/zeropool/go-dkv"
)

type T struct {
    A int
    B string
}

func main() {
    // create a database under folder test
    db, err := dkv.NewKVDB("test", false)
    if err != nil {
        panic(db)
    }
    // can store any variable that can marshal with json
    db.Set("Hello", "World")
    db.Set("PI", 3.1415926)
    db.Set("test", &T{1, "OK"})
    fmt.Println("Hello:", db.Get("Hello"))
    fmt.Println("dummy will nil:", db.Get("dummy"))

    db.Interate(func(k string, v interface{}) {
        fmt.Println(k, v)
    })

    db.Del("Hello")
    // empty the database, will remove database directory
    db.Cls()
    db.Close()
}
3254 次点击
所在节点    分享创造
1 条回复
julor
2016-03-05 13:35:30 +08:00
消灭 0 回复

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/261083

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX