KVSFlute

DBFluteプロジェクトが提供するライブラリ KVSFlute のページ。

KVSFluteとは?

KVSFlute は、KVS (Redisなど) に対して、DBFluteライクにアクセスするライブラリです。

自動生成してタイプセーフ

DBFlute の FreeGen と組み合わせて利用することで、タイプセーフなアクセスインターフェースを自動生成します。 アプリからは、自動生成されたクラスを使ってKVSにアクセスします。

KVSFluteのアーキテクチャ

KVSFlute Architecture

LastaFluteでの利用例

LastaFluteとの組み合わせが、KVSFlute利用の典型例となります。

2018/04時点にて、KVSFluteは LastaFlute に依存をしています。(将来、汎用的にする可能性はあります)

KVSFluteのキーポイント

KVSとして Redis を使っている

KVSとして Redis を使います。

2018/04時点にて、KVSFluteは Redis でしか利用できません。(将来、汎用的にする可能性はあります)

KVSキャッシュ

KVSを、RDBのキャッシュ として利用する方式を提供しています。

  1. 検索されたら...
  2. まずはKVSを見て、あればそれを戻す
  3. なければ、RDBを検索する
  4. RDBからの結果を戻す
  5. RDBからの結果をKVSに登録する (次の検索時のために)

このような制御が組み込み済のインターフェースが提供されます。 呼び出しコードは、"KVSを使っていること" 自体には依存をしますが、RDBとの連携部分を意識する必要はないです。

e.g. KVSキャッシュの一件検索 @Java
kvsProductBhv.selectEntityByProductId(cb -> {
    cb.query().setProductId_Equal(productId);
}).ifPresent(...); (OptionalEntity)

KVSストア

KVSを、永続ストレージ として利用する方式を提供しています。 (RDBの代わりにKVSを使うという感じ)

設定ファイルに定義した、KVS上の仮想的なスキーマ構造に対応したクラスを自動生成し、タイプセーフに取り扱うことができます。 DBFluteのようにKVSにアクセスします。

e.g. KVSストアの一件検索 @Java
kvsEgStoreExampleBhv.selectEntity(cb -> {
    cb.acceptPK(egkey);
}).ifPresent(...); (OptionalEntity)

KVSFluteのセットアップ

KVSFluteの設定ファイルやExampleは、もろもろ dbflute-example-with-non-rdb リポジトリに入っています。 こちらを参考に環境構築をしていきましょう。

このプロジェクトは、KVSFluteだけでなく SolrFlute や ESFlute など、RDBではないFlute系の Example をまるごと含んでいます。

Great Thanks

KVSFluteは、"U-NEXTさん" より、コントリビュート頂きました。

ありがとうございます!