多数のキーバリュー ストアが利用可能です。現在、いずれかを選択して、それに固執する必要があります。キーバリュー ストア ベンダーによって作成されたものではない、独立したオープン API を使用すると、ストア間の切り替えがはるかに簡単になると思います。
したがって、誰かがアプリを一度構築し、必要に応じてキーと値のストアを変更できるように、データストアの抽象化レイヤー (ODBC に似ていますが、より単純なキーと値のストアに焦点を当てています) を構築しています。この API は単純すぎますか?
get(Key)
set(Key, Value)
exists(Key)
delete(Key)
これまで見てきたすべての API は非常に多くの機能を追加しているように見えるので、追加のメソッドがいくつ必要か疑問に思っていました。
set(null) を使用してアイテムを削除でき、get が null を返す場合、これはアイテムが存在しないことを意味するという返信を受け取りました。これは 2 つの理由で良くありません。第一に、戻り値の型とステータスを混在させるのはよくないことであり、第二に、すべての言語に null の概念があるわけではありません。見る:
すべてのプログラミング言語には、NIL、null、または未定義の明確な概念がありますか?
データに対してさまざまな種類の操作を実行できるようにしたいのですが、理解しているように、すべてをキー値ストアの上に構築できます。これは正しいです?また、これらの付加価値機能も提供する必要がありますか? 例: mapreduce やインデックスなど
内部的には、Erlang と Ruby で既にこの基本的なバージョンがあり、多くの時間を節約できました。また、さまざまなキー値ストアの特定のユース ケースのパフォーマンスをテストすることもできました。