Golang code:
package main
import (
"fmt"
"github.com/dgraph-io/badger"
"log"
"time"
)
func main () {
//Badger -----------
opts := badger.DefaultOptions
opts.Dir = "badger"
opts.ValueDir = "badger"
db, err := badger.Open(opts)
if err != nil {
log.Fatal(err)
}
defer db.Close()
err = db.Update(func(txn *badger.Txn) error {
err := txn.Set([]byte("name"), []byte("John"))
return err
})
var str string
err = db.View(func(txn *badger.Txn) error {
item, err := txn.Get([]byte("name"))
if err != nil {
return err
}
val, err := item.ValueCopy(nil)
if err != nil {
return err
}
str = string(val)
return nil
})
fmt.Println(str)
time.Sleep(20*time.Second)
fmt.Println("OK")
}
I add time.Sleep to code.
If I interrupt the execution of the program, I get lost data and an error accessing the database.
Value log truncate required to run DB. This might result in data loss.