有许多可用的键值商店.目前你需要选择一个并坚持下去.我相信一个独立的开放式API,不是由键值存储供应商制作的,它会使商店之间的切换变得更加容易.
因此,我正在构建一个数据存储区抽象层(如ODBC,但专注于更简单的键值存储),以便有人构建一次应用程序,并在必要时更改键值存储.这个API太简单了吗?
get(Key) set(Key, Value) exists(Key) delete(Key)
由于到目前为止我看到的所有API似乎都添加了很多,我想知道还需要多少其他方法?
我收到一些回复说set(null)可以用来删除一个项目,如果get返回null,那么这意味着一个项目不存在.这有两个原因.首先,混合返回类型和状态是不好的,其次,并非所有语言都具有null的概念.看到:
所有编程语言都有明确的NIL,null或undefined概念吗?
我确实希望能够对数据执行多种类型的操作,但据我所知,一切都可以在键值存储之上构建.它是否正确?我应该提供这些增值功能吗?例如:像mapreduce或索引
在内部,我们已经在Erlang和Ruby中拥有了它的基本版本,它为我们节省了大量时间,并且还使我们能够测试不同键值存储的特定用例的性能
只做绝对必要的事情,而不是问它是否太简单,问它是否太多,即使它只有一种方法.