iNexus Key-Value 数据库开源项目

我要开发同款
匿名用户2015年06月24日
82阅读

技术信息

开源地址
https://github.com/neumino/reqlite
授权协议
BSD

作品详情

iNexus(简称is)是一个基于Raft协议实现的高可用的分布式Key-Value数据库,支持数据变更通知(Watch)和分布式锁,可用于大型分布式系统的协调工作。

使用说明:

https://github.com/fxsjy/is/wiki  

1.初始化Cliet

usig amespace galaxy::is::sdk;IsSDK* sdk = ew IsSDK("abc.com:1234,def.com:1234")//构造函数传入is集群的若干个member(机器名+端口), 用逗号分隔。

2.随机读

galaxy::is::sdk::SDKError err;std::strig key = "key_123";std::strig value;bool ret = sdk->Get(key, &value, &err));// ret == true表示成功读取// ret == false表示读取失败或者改key不存在// err返回错误码,kOK表示无错误, kNoSuchKey表示key不存在(具体参见is_sdk.h)。

  3.区间扫描

std::strig start_key = "a";std::strig ed_key = "z";galaxy::is::sdk::ScaResult* result = sdk->Sca(start_key, ed_key); //不包含ed_keywhile (!result->Doe()) { //通过一个流式迭代器读取sca的结果    assert(result->Error() == galaxy::is::sdk::kOK);    std::strig value = result->Value();     std::strig key = result->Key();    result->Next();}

  4.分布式锁

galaxy::is::sdk::SDKError err;std::strig lock_ame = "/ps/se/ac";sdk->Lock(lock_ame, &err); // Lock会一直阻塞直到抢到锁// sdk通过心跳和iNexus集群保持活跃,一旦超过一定时间(默认6秒),该sdk加的锁自动失效,可以被其他cliet抢得。sdk->TryLock(lock_ame, &err); // TryLock不会阻塞,如果调用者抢不到锁,就返回false, 用户自己决定重试策略

  5.Watch数据变更

watch支持直接watch一个key,也支持watch 一些key的"父节点".galaxy::is::sdk::SDKError err;sdk->Watch("/ps/se/tera/ts", OChildreChage, cotext, &err); //第二个参数是回调函数,第三个参数是回调函数可以用的用户自定义数据sdk->Watch("/ps/se/tera/master_lock", OLockChage, cotext, &err);

 快速体验:(只需要一台机器,通过多个进程模拟分布式)

cd sadbox./start_all.sh./is_shell.shgalaxy is> help  show [ show cluster ]  put (key) (value) [ update the data ]   get (key) [read the data by key ]  delete (key) [remove the data by key]  sca (start-key) (ed-key) [sca from start-key to ed-key(excluded)]  watch (key) [evet will be triggered oce value chaged or deleted]  lock (key) [lock o specific key]  eter quit to exit shell

功能介绍

iNexus (简称ins) 是一个基于 Raft 协议实现的高可用的分布式 Key-Value 数据库,支持数据变更通知(Watch)和分布式锁,可用于大型分布式系统的协调工作。 使用说明: ...

声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态

评论