repositorypackage
0.0.0-20240801085057-b312cebb821f
Repository: https://github.com/0xalanyin/mini-bitcask-db.git
Documentation: pkg.go.dev
# Packages
No description provided by the author
# README
mini-bitcask-db
A minimal project based on the bitcask storage model.
reference
bitcask model paper
https://riak.com/assets/bitcask-intro.pdf
reference project
usage
func main() {
// Open DB
db, err := minibitcask.Open("/tmp/minibitcask")
if err != nil {
panic(err)
}
var (
key = []byte("key")
value = []byte("value")
)
// Put
err = db.Put(key, value)
if err != nil {
panic(err)
}
fmt.Printf("Put key: %s, value: %s success\n", key, value)
// Get
currValue, err := db.Get(key)
if err != nil {
panic(err)
}
fmt.Printf("Get key: %s, value: %s success\n", key, currValue)
// Delete
err = db.Delete(key)
if err != nil {
panic(err)
}
fmt.Printf("Delete key: %s success\n", key)
// Merge
err = db.Merge()
if err != nil {
panic(err)
}
fmt.Printf("Merge success: compact data to a new datafile\n")
// Close
err = db.Close()
if err != nil {
panic(err)
}
fmt.Printf("Close db success\n")
}