#database-server #cdb #memcached #server #key-value-store #mtbl

app cdbd

一个小型服务器,通过标准协议(例如memcached)提供常量键值存储文件(例如CDB和MTBL)

2个版本

使用旧的Rust 2015

0.1.1 2017年6月7日
0.1.0 2017年6月7日

#2315数据库接口

MIT/Apache

45KB
1K SLoC

cdbd

cdbd ("常量数据库守护进程") 是一个小型的常量数据库服务器:给定一个它理解的键值文件格式(如CDB),它将通过它使用的协议(如memcached)提供该文件。

过去我曾使用类似cdbd的公司内部工具(称为"SSTable Service")向生产服务提供预计算数据。这个想法是启动cdbd实例并获取所需数据的超级简单。在面向服务的架构中,cdbd使您的静态数据可访问。

示例

echo '+3,5:one->Hello\n' | cdbmake f.cdb f.cdb.tmp
cdbd --cdb f.cdb --memcached 11211 &
memccat --servers=localhost:11211 one

安装

使用Cargo(Rust包管理器)进行安装,如下所示

cargo install cdbd

用法

Usage: target/debug/cdbd [options]

Options:
        --memcached [HOST:]PORT
                        What port (and optional address) to bind a memcached
                        service on (default address "0.0.0.0")
        --cdb CDB       A CDB file to serve
        --mtbl MTBL     An MTBL file to serve
    -v, --verbose       Print more logging information (may be used more than
                        once for more detail)
    -h, --help          Print this help text

支持的常量数据库

  • CDB(使用标志--cdb FILE
  • MTBL(使用标志--mtbl FILE

支持的协议

  • memcached(使用标志--memcached [HOST:]PORT;仅支持memcached读取操作)

待做工作

  • 负载测试和基准测试
  • 使用Tokio
  • 支持其他数据库
    • LMDB
    • SQLite?
    • Berkeley DB?
  • 支持其他协议
    • Redis(获取和mget)
    • HTTP?
  • 将协议提取到它们自己的crates中?这可能允许其他人更容易地编写memcached等服务器。

许可证

版权所有 2017 Leon Barrett

根据您的选择,许可如下:

贡献

除非您明确声明,否则任何有意提交以包含在作品中的贡献,根据Apache-2.0许可证定义,应如上双许可,没有任何附加条款或条件。

依赖关系

~5.5MB
~101K SLoC