27个稳定版本 (5个主要版本)
6.2.4 | 2023年12月21日 |
---|---|
6.2.0 | 2023年10月27日 |
6.1.8 | 2023年7月21日 |
6.1.0 | 2023年2月18日 |
1.1.2 | 2022年7月5日 |
#460在数据库接口中
每月下载量64
用于http-cache-darkbird
160KB
4K SLoC
DarkBird是一个文档型、实时、内存数据库解决方案,针对快速文档检索进行了优化。
特性
- 数据库级别:DarkBird最初是存储系统,但从版本5.0.3开始,它成为了一个功能齐全的数据库,因为它提供了Schema来构建数据库,并且所有操作都在数据库层进行。
- 持久性:使用非阻塞写前日志引擎进行数据持久化,将数据存储到多个页面。
- 内存存储:数据存储在内存中,有两种模式(DiskCopies,RamCopies),第一种将数据持久化到磁盘,并在重启后重新加载到内存中。
- 并发性:使用高并发HashMap(DashMap),不需要Mutex/RwLock进行线程同步。
- 向量:DarkBird提供向量引擎用于存储和搜索向量。
- 索引:支持索引,允许动态决定哪些文档字段需要索引。
- 全文搜索:自3.5.0版本起支持全文搜索操作。
- 物化视图:支持物化视图。
- 标签:每个文档可以有多个标签,一个标签可以引用多个文档,非常适合通过关键字快速检索文档组。
- 过期时间:从vsn 6.0.0开始支持键过期。
- 原子操作:从vsn 6.0.0开始支持原子操作(类似于redis的setNx)。
- 迁移:存储模型是(键,文档),您可以使用
migration
在打开存储之前更改磁盘上的现有(键,文档)数据。 - 备份/恢复:从vsn-6.1.0开始支持备份/恢复。
- 外部数据库支持:将存储数据复制到Postgres/Cassandra/Scylla,并从中加载。
- 事件处理:订阅任何通道以接收事件。
Crate
darkbird = "6.2.4"
示例
版本
- 2.0.0:改进了性能并添加了整个数据的数据库持久副本。
- 3.0.0:实现了索引、标签和范围查询。从本版本开始,文档模型必须实现从本版本开始实现的树形trait。
- 3.5.0:添加了全文搜索API
- 4.0.0:添加了对物化视图的支持。文档模型必须实现MaterializedView特性,并提供了用于获取视图模型的API。使用
&str
而不是&String
以获得更好的性能和API兼容性。所有示例均已更新。 - 5.0.1:迁移到存储到数据库世界,使用Schema builder和数据库层进行所有操作,同时也与旧版本兼容
- 5.0.2:修复了持久索引问题,并更改了全文搜索API以修复一个错误,所有示例均已更新
- 5.0.3:修复了加载器问题
- 6.0.0:添加了另一个存储引擎以支持:原子操作(类似于redis setNx)、过期和更简单的API
- 6.0.1:备份/恢复 _ 新的迁移组件(发生错误时恢复自身)
- 6.2.0:向量引擎
依赖项
~13–24MB
~361K SLoC