百科.dev
全部条目AI 编程趋势榜开源项目技术资讯提交条目
登录
< 返回工具列表
G

go-memdb

> 编程语言
开源

基于不可变基数树构建的 Golang 内存数据库

3.5K stars0 点赞0 次浏览
访问官网GitHub

工具介绍

基于不可变基数树构建的 Golang 内存数据库

go-memdb

Provides the memdb package that implements a simple in-memory database built on immutable radix trees. The database provides Atomicity, Consistency and Isolation from ACID. Being that it is in-memory, it does not provide durability. The database is instantiated with a schema that specifies the tables and indices that exist and allows transactions to be executed.

The database provides the following:

  • Multi-Version Concurrency Control (MVCC) - By leveraging immutable radix trees the database is able to support any number of concurrent readers without locking, and allows a writer to make progress.

  • Transaction Support - The database allows for rich transactions, in which multiple objects are inserted, updated or deleted. The transactions can span multiple tables, and are applied atomically. The database provides atomicity and isolation in ACID terminology, such that until commit the updates are not visible.

  • Rich Indexing - Tables can support any number of indexes, which can be simple like a single field index, or more advanced compound field indexes. Certain types like UUID can be efficiently compressed from strings into byte indexes for reduced storage requirements.

  • Watches - Callers can populate a watch set as part of a query, which can be used to detect when a modification has been made to the database which affects the query results. This lets callers easily watch for changes in the database in a very general way.

For the underlying immutable radix trees, see go-immutable-radix.

Documentation

The full documentation is available on Godoc.

Example

Below is a simple example of usage

…

GitHub Issues· 45 开放

在 GitHub 查看全部
  • #83

    Add an efficient `Count` method to find the number of items in each index.

    enhancement更新于 2026年2月7日
  • #102

    Are there any benchmarks?

    更新于 2025年3月30日
  • #153

    support for DeleteRange

    更新于 2024年4月10日
  • #112

    How to vacuum old data?

    更新于 2024年2月15日
  • #150

    Watch channel closed unexpectedly

    更新于 2023年10月13日
  • #145

    Contribution guide

    更新于 2023年8月18日

核心特点

  • •Multi-Version Concurrency Control (MVCC) - By leveraging immutable radix trees
  • •Transaction Support - The database allows for rich transactions, in which multiple
  • •Rich Indexing - Tables can support any number of indexes, which can be simple like
  • •Watches - Callers can populate a watch set as part of a query, which can be used to

> 标签

Go

暂无评论,来聊聊你的看法吧

> 工具信息

发布日期2026年8月1日
最后更新2026年9月17日
分类编程语言
定价开源

> 相关工具

T
TypeScript
JavaScript 的超集,为前端与全栈提供静态类型
P
Python
通用编程语言,广泛用于 Web、数据与 AI
G
Go
Google 推出的简洁高效系统语言