78 个版本 (36 个破坏性更新)
0.45.2 | 2024年8月9日 |
---|---|
0.45.0 | 2024年7月16日 |
0.44.2 | 2024年7月11日 |
0.43.2 | 2024年3月20日 |
0.9.0 | 2022年7月31日 |
#43 在 数据库实现
每月111次下载
275KB
7K SLoC
词汇簿
词汇簿是一个内存中的键值存储,解决了介于数据库和消息代理之间的某个用例。它专门设计用来作为包含电池的 Web 服务器和后端数据存储,适用于较小的 Web 应用程序或家庭自动化系统。你可以将其视为 MQTT 的替代品,在其中你可以简单地查找消息,而不需要订阅,也可以作为 Redis 的替代品,其中任何 SET 操作都会自动生成一个带有键作为通道和值作为消息的发布/订阅消息。
在词汇簿中,键是类似于 MQTT 主题的层次路径。默认分隔符是 /
,因此键看起来像 some/worterbuch/key
。可以通过查找键或订阅它来检索值。在这两种情况下都支持通配符。默认的单层通配符是 ?
,默认的多层通配符是 #
(所有这些都可以配置)。
获取 my/key/#
将返回一个包含所有键/值对的映射,其中键以 my/key/
开头,订阅 my/key/#
将为存储中已经存在的每个键/值对产生事件,其中键以 my/key/
开头,并且随后为每个以 my/key/
开头的键的 SET 操作产生额外的 event。
与类似解决方案的比较
词汇簿 | Redis | MQTT | Kafka | SQL | CouchDB | |
---|---|---|---|---|---|---|
发布/订阅 | 是 | 可选 | 是 | 是 | 否 | ? |
查询 | 是 | 是 | 否 | 否 | 是 | 是 |
连接查询* | 是 | 否 | 否 | 否 | 是 | 是 |
类似 GraphQL 的查询** | 是 | 否 | 否 | 否 | 否 | 否 |
删除 | 是 | 是 | 是 | 否 | 是 | 是 |
内存存储 | 是 | 是 | 是 | 否 | 否 | 否 |
持久存储 | 可选 | 可选 | 可选 | 是 | 是 | 是 |
TCP API | 是 | 是 | 是 | 是 | 是 | 是 |
WebSocket API | 是 | 否 | 可选 | 否 | 否 | ? |
HTTP API | 是 | 否 | 否 | 否 | 否 | 是 |
内置用户管理 | 否 | 是 | 是 | 是 | 是 | 是 |
基于令牌的授权 | 是 | ? | 否 | 否 | 否 | ? |
可通过Web前端访问 | 是 | 否 | 否 | 否 | 否 | 是 |
* 跨不同数据源(例如,表、主题、键等)的查询,这些查询生成包含来自这些数据源的数据的单个结果
** 查询中,预期的结果数据结构编码在请求中
依赖关系
~36–49MB
~825K SLoC