详情介绍
rosedb是一个高性能、快速、内嵌的k-v数据库,支持多种数据结构,包含 String、List、Hash、Set、Sorted Set,接口名称风格和Redis类似,rosedb基于LSM Tree模型和WAL,纯Golang实现,易于使用、扩展。
软件特色
支持丰富的数据结构:字符串、列表、哈希表、集合、有序集合。
内嵌使用简单至极,无需任何安装部署(import "github.com/roseduan/rosedb")。
低延迟、高吞吐(具体请见英文 README 的 Benchmark)。
不同数据类型的操作可以完全并行。
支持客户端命令行操作。
支持过期时间。
软件介绍
一个 rosedb 实例,其实就是系统上的一个文件夹,在这个文件夹中,除了一些配置外,最主要的便是数据文件。一个实例中,只会存在一个活跃的数据文件进行写操作,如果这个文件的大小达到了设置的上限,那么这个文件会被关闭,然后创建一个新的活跃文件。
其余的文件,我称之为已归档文件,这些文件都是已经被关闭,不能在上面进行写操作,但是可以进行读操作。
所以整个数据库实例就是当前活跃文件、已归档文件、其他配置的一个集合:
在每一个文件中,写数据的操作只会追加到文件的末尾,这保证了写操作不会进行额外的磁盘寻址。写入的数据是以一个个被称为 Entry 的结构组织起来的,Entry 的主要数据结构如下:
因此一个数据文件可以看做是多个 Entry 的集合:
当写入数据时,如果是 String 类型,为了支持 string 类型的 key 前缀扫描和范围扫描,我将 key 存放到了跳表中,如果是其他类型的数据,则直接存放至对应的数据结构中。然后将 key、value 等信息,封装成 Entry 持久化到数据文件中。
如果是删除操作,那么也会被封装成一个 Entry,标记其是一个删除操作,然后持久化到数据文件中,这样的话就会带来一个问题,数据文件中可能会存在大量的冗余数据,造成不必要的磁盘空间浪费。为了解决这个问题,我写了一个 reclaim 方法,你可以将其理解为对数据文件进行重新整理,使其变得更加的紧凑。
reclaim 方法的执行流程也比较的简单,首先建立一个临时的文件夹,用于存放临时数据文件。然后遍历整个数据库实例中的所有已归档文件,依次遍历数据文件中的每个 Entry,将有效的 Entry 写到新的临时数据文件中,最后将临时文件拷贝为新的数据文件,原数据文件则删除。
这样便使得数据文件的内容更加紧凑,并且去除了无用的 Entry,避免占据额外的磁盘空间。
待办
这个项目其实还有很多可以完善的地方,比如下面列举到的一些,如果你对这个项目比较熟悉了,可以挑选一个自己感兴趣的 Todo List,自己去实现,然后提 Pr,成为这个项目的 Contributor,我相信这一定会对你有帮助的,赶快行动起来吧!
支持 TTL
String 类型 key 加入前缀扫描
写一个简单的客户端,支持命令行操作
数据库启动优化
reclaim 性能优化
支持事务,ACID 特性
文件数据压缩存储(snappy、zstd、zlib)
缓存淘汰策略(LRU、LFU、Random)
支持更多的命令操作(type,keys,mset,mget,zcount,etc...)
完善相关文档
更新日志
[修复]回收的错误。
[新增]一些文档。
下载地址
人气软件
oracle sqlplus(oracle数据库连接工具) v12.1 官方免费版
MDB Viewer Plus(access mdb文件查看编辑工具) v2.63 官方英文版
RapidMiner Studio基础版(数据挖掘工具) v9.4 64位 官方免费安装
sybase sql advantage(数据库连接工具) v12.5.3 免费绿色版
Toad for Oracle 2020/2021 v14.1.120.923 破解免费版(附安装教
Qure Profiler(SQL Server分析软件) v2.1.0.2134 免费安装版
PSdZData(宝马刷隐藏编程数据库) v62.5 官方免费完整版
mdb数据库修改工具 v1.0 绿色免费版
Navicat for MongoDB(管理mongodb数据库软件) v15.0.12.0 免费安
Richardson Software RazorSQL(SQL数据库管理工具) v9.5 破解注
相关文章
-
MySQL数据闪回恢复工具 reverse_sql 官方免费版
reverse_sql 是一个用于解析和转换 MySQL 二进制日志(binlog)的工具,可以将二进制日志文件中记录的数据库更改操作转换为反向的 SQL 语句,支持 MySQL 5.7/8.0 和 MariaD...
-
PostgresToMongo(PostgreSQL转MongoDB数据库软件) v1.6 官方安装版
PostgresToMongo是一个数据转换工具,它可以帮助您将数据从PostgreSQL传输到MongoDB,用户只需要简单的几步操作即可轻松完成数据库的转换,有效节省了时间...
-
MsSqlToSqlite(数据库迁移工具) v2.6 官方安装版
MsSqlToSqlite是一个数据库迁移软件,可以帮助数据库用户将MsSql导入Sqlite,可以大大节省将数据导入SQLite的时间,还支持批量处理,可以保存每一次操作,方便重复执行...
-
MsSqlToSqlite(数据库迁移工具) v2.6 官方安装版
MsSqlToSqlite是一个数据库迁移软件,可以帮助数据库用户将MsSql导入Sqlite,可以大大节省将数据导入SQLite的时间,并且MsSqlToSqlite使用便捷、功能出众、安全可靠...
-
MsSqlToPostgres(数据库转换软件) v2.6 官方安装版
MsSqlToPostgres是一个数据库转换软件,MsSqlToPostgres可以有效的帮助数据库用户进行转换SQL Server数据库,支持多字节字符集...
-
MongoToSqlite(数据库转换工具) v1.4 官方安装版
MongoToSqlite是一个数据库转换软件,具有将数据从表转换为集合、将数据从SQL查询转换为集合以及一次将表数据批量转换为集合等各种功能,可以有效的帮助数据库用户转换Mong...
下载声明
☉ 解压密码:www.jb51.net 就是本站主域名,希望大家看清楚,[ 分享码的获取方法 ]可以参考这篇文章
☉ 推荐使用 [ 迅雷 ] 下载,使用 [ WinRAR v5 ] 以上版本解压本站软件。
☉ 如果这个软件总是不能下载的请在评论中留言,我们会尽快修复,谢谢!
☉ 下载本站资源,如果服务器暂不能下载请过一段时间重试!或者多试试几个下载地址
☉ 如果遇到什么问题,请评论留言,我们定会解决问题,谢谢大家支持!
☉ 本站提供的一些商业软件是供学习研究之用,如用于商业用途,请购买正版。
☉ 本站提供的rosedb(k-v数据库) v1.2.7 官方免费版资源来源互联网,版权归该下载资源的合法拥有者所有。