当前位置:网站首页>Storage engine written by golang, based on b+ tree, mmap
Storage engine written by golang, based on b+ tree, mmap
2022-08-03 22:28:00 【InfoQ】
mydb
mydb is a key-value storage engine written in golang, based on b+ tree, mmap
How to use:
package main
import (
"fmt"
"github.com/alberliu/mydb"
"strconv"
)
func toBytes(i int) []byte {
return []byte(strconv.Itoa(i))
}
func main() {
db, err := mydb.Open("data")
if err != nil {
panic(err)
}
fmt.Println("init: ", db.Range(mydb.Infinity, mydb.Infinity))
for i := 1; i <= 5; i++ {
db.Add(toBytes(i), toBytes(i))
}
fmt.Println("add: ", db.Range(mydb.Infinity, mydb.Infinity))
db.Update(toBytes(1), toBytes(4))
fmt.Println("update", db.Range(mydb.Infinity, mydb.Infinity))
db.Delete(toBytes(1))
fmt.Println("delete", db.Range(mydb.Infinity, mydb.Infinity))
fmt.Println("range", db.Range(toBytes(3), toBytes(4)))
}
github address:
https://github.com/alberliu/mydb
边栏推荐
猜你喜欢
随机推荐
嵌入式开发:嵌入式基础——代码和数据空间揭秘
Data_web(八)mysql增量同步到mongodb
2022-08-02 mysql/stonedb slow SQL-Q18 - memory usage surge analysis
云计算国内外发展现状
生成器版和查看器版有什么区别?
Conditional Statements for Shell Programming
2022的七夕,奉上7个精美的表白代码,同时教大家快速改源码自用
封装、包、访问权限修饰符、static变量
L2-029 特立独行的幸福
override学习(父类和子类)
Websocket multi-threaded sending message error TEXT_PARTIAL_WRITING--Use case of spin lock replacing synchronized exclusive lock
Why do we need callbacks
UVa 1025 - A Spy in the Metro(白书)
Canvas App中点击图标生成PDF并保存到Dataverse中
什么是memoization,它有什么用?
navicat 连接 mongodb 报错[13][Unauthorized] command listDatabases requires authentication
for loop exercises
目标检测的国内外研究现状
PowerMockup 4.3.4::::Crack
483. Smallest Good Base








![[b01lers2020]Life on Mars](/img/d0/d5c9b7224542c8843ce29adc7ef713.png)
