CNode

一起来写个分布式 KV 存储抽象库吧

分享
Hhelloyou2012发布于8 年前最后回复8 年前7 回复5021 浏览0 收藏

最近在调研分布式 KV 数据库,无意间发现了 docker/libkv 这个库,于是想仿照写一个类似的通用库,这样无论选择哪个 KV 存储都不影响各个系统。我查了下 npm 看看有没有类似的库还真查到一个node-libkv,但是已经好久没更新了而且是 WIP 状态,因此决定自己写一个。

仓库地址:https://github.com/kvxjs/kvx

目前 consul 部分基本写完,Etcd 和 Zookeeper 还没写,有没有感兴趣的小伙伴可以一起加入我们来贡献代码呀?

CallsConsulEtcdZookeeper
Put
Get
Delete
Exists
Watch
WatchTree
Lock
List
DeleteTree
AtomicPut
Close

来个 Demo 吧:

import kvx from 'kvx';

const kv = kvx('consul');

async function test() {
  const key = 'hello';
  const value = 'world';

  await kv.put(key, value);
  const pair = await kv.get(key);

  const pairs = await kv.list(key);

  const watcher = kv.watch(key);
  watcher.on('change', (err, data) => {
    console.log(data);
    watcher.end();
  });
}
查看回复

回复 (7)

D
dbit-xia#1·8 年前

confd 是不是这个类型的库

[CNodeMD]

H
helloyou2012#2·8 年前

@dbit-xia 不太类似,confd侧重点在管理配置,kvx 侧重存储,可以在 kvx 之上做类似 confd 的事情。

D
dbit-xia#3·8 年前

目前是用get和set比较多 所以我选择了nconf 支持自己写拓展 file,redis,env...

A
aojiaotage#4·8 年前

有点好奇楼主这个数据库的使用场景,可否细致科普一下? 比如和redis的异同,优势等等?

H
helloyou2012#5·8 年前

@aojiaotage 这是一个通用库,后端可以是任意 kv 数据库,也可以加 redis,目前想先实现 consul、etcd、zookeeper

A
aizhoujin#6·8 年前

2132131231231231

H
helloyou2012#7·8 年前

@aizhoujin 你是一个 AI ???

参与回复
登录后即可参与回复。登录