对leveldb的http访问。
flatdb的Python项目详细描述
flatdb是一个围绕leveldb的瘦http包装器。leveldb很简单, 持久密钥值存储。
API
有三个端点。每个值一次接受多个值。全部 使用http get。(这不是一个restful接口。)
/get
GET /get?key=foo&key=bar HTTP/1.1
从数据库中获取一个或多个值。响应将是一个json 对象,在数据库中找到每个key都有一个键。
/getrange
GET /getrange?from=from_key HTTP/1.1
从from_key开始获取范围。
/put
GET /put?foo=bar&baz=qux HTTP/1.1
在数据库中存储一个或多个值。如果有多个键/值对 指定后,它们将作为批处理原子地写入。如果写的是 成功,返回状态为201。如果写入失败,它将 不是。
/delete
GET /delete?key=foo&key=baz HTTP/1.1
从数据库中删除一个或多个密钥。如果多个键是 指定后,它们将作为批处理原子删除。如果删除 成功,返回状态为200。
为什么是flatdb?
LevelDB是 一个持久的、快速的键值存储的理想解决方案。(RockSDB是 与facebook有很多共同点,但也非常 因为leveldb(和rocksdb)是库级数据存储,所以flatdb 提供一个简单的面向服务的接口。
其他项目,比如reveldb和python leveldb服务器包, 提供类似的功能,但:
- RevelDB几乎没有构建,然后在启动时出现故障。
- leveldb服务器是怪异的,龙卷风和无证的。
运行flatdb
flatdb安装两个可执行脚本:flatdb和flatdb-dev。
$ flatdb -h usage: flatdb [-h] [-d] [-p PORT] [-b DATABASE] [-H HOST] optional arguments: -h, --help show this help message and exit -d, --debug -p PORT, --port PORT -b DATABASE, --database DATABASE -H HOST, --host HOST
- --port:
- 监听端口。(7532)
- --host: 要绑定到的地址。(127.0.0.1)
- --database: >路径(如果不存在)将创建(如果不存在的话)。
flatdb运行gevent服务器。flatdb-dev 运行内置的烧瓶服务器。