きょこみのーと

技術に関係ないほうのブログ

golangでLevelDBを使う

golangでDBを扱うついでに、まだ触ったことがなかったLevelDBについでに触れてみました。

LevelDBについては、こちらの記事がとてもわかりやすかったです。 勉強になります(T_T)

LevelDB入門 (基本編) - from scratch

ライブラリ

LevelDBのクライアントは、以下を使用しました。

level-go - code.google.com

サンプルコード

実装コードはこんな感じになりました。 基本的に他DBとかと同じで、OpenしてGetやSetしてCloseな感じでわかりやすかったです。

package main

import (
    "fmt"
    "github.com/kyokomi/emoji"
    "code.google.com/p/leveldb-go/leveldb"
    "code.google.com/p/leveldb-go/leveldb/db"
)

func main() {

    // levelDB open
    var opt db.Options
    level, err := leveldb.Open("hogeDB", &opt)
    if err != nil {
        fmt.Println("error", err)
    }
    defer level.Close()

    // key=cocoro value= PyonPyon write
    var writeOpt db.WriteOptions
    writeStr := emoji.Sprint("@{:coffee:} PyonPyon @{:coffee:}")
    level.Set([]byte("cocoro"), []byte(writeStr), &writeOpt)

    // write check
    var readOpt db.ReadOptions
    readData, err := level.Get([]byte("cocoro"), &readOpt)
    if err != nil {
        fmt.Println("error", err)
    }
    fmt.Println(string(readData))
}

実行結果

f:id:kyokomi:20140627001307p:plain

いい感じです。コーヒーも保存できました。

しばらく使ってみようと思います!!