rosedb 2.1 和 2.2 版本已发布,请使用最新 2.2 版本。
V2.1.0
新功能
支持迭代器,用户可以方便的使用其来遍历数据库中的所有数据,并且支持正向和反向迭代,迭代器的几个主要的方法如:
- Rewind:回到迭代器的第一个 key
- Seek:找到第一个小于等于(或大于等于)给定 key 的值
- Next:调到下一个 key
- Key:获取当前的 key
- Value:获取当前的 Value
- Close:关闭迭代器
支持前缀扫描,初始化迭代器时,可以传入一个前缀,只有匹配这个前缀的 Key 才会遍 历。基础使用方法如下:
// create an iterator
iterOptions := rosedb.DefaultIteratorOptions
iter := db.NewIterator(iterOptions)
defer iter.Close() // close the iterator after using it
// iterate all data in the database
for ; iter.Valid(); iter.Next() {
key := iter.Key()
val, _ := iter.Value()
println(string(key), string(val))
}
Bug 修复
-
感谢 @rfyiamcool 贡献 PR
-
- #216 fix: update committed flag after batch commit
V2.2.0
新功能
-
支持 Merge 方法,用于回收磁盘上的无效数据,清理磁盘空间
-
- Merge 将会重写数据库中所有有效的数据,这样可以丢弃掉无效的数据。
- Merge 过程中会生成 Hint 文件,此文件只存储索引,用于快速启动数据库
- Merge 操作有可能是一个非常耗时的操作,特别是在数据量较大的情况下,所以建议在数据库空闲的时候执行
-
添加 Windows 平台单元测试,可以在 Windows 上编译运行。添加对应的 workflow 测试脚本。