KVsFlute
DBFluteプロジェクトが提供するライブラリ KVsFlute のページ。
KVsFluteとは?
KVsFlute は、KVs (Redisなど) に対して、DBFluteライクにアクセスするライブラリです。
自動生成してタイプセーフ
DBFlute の FreeGen と組み合わせて利用することで、タイプセーフなアクセスインターフェースを自動生成します。 アプリからは、自動生成されたクラスを使ってKVsにアクセスします。
KVsFluteのアーキテクチャ
LastaFluteでの利用例
LastaFluteとの組み合わせが、KVsFlute利用の典型例となります。
2018/04時点にて、KVsFluteは LastaFlute に依存をしています。(将来、汎用的にする可能性はあります)
KVsFluteのキーポイント
KVsとして Redis を使っている
KVsとして Redis を使います。
2018/04時点にて、KVsFluteは Redis でしか利用できません。(将来、汎用的にする可能性はあります)
KVsキャッシュ
KVsを、RDBのキャッシュ として利用する方式を提供しています。
- 検索されたら...
- まずはKVsを見て、あればそれを戻す
- なければ、RDBを検索する
- RDBからの結果を戻す
- 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のダウンロード
本家リポジトリのreleasesからzipファイルがダウンロードできます。
- 本家のreleases
- dbflute-example-with-non-rdb - releases
KVsFluteの使い方
KVsFluteの設定ファイルやExampleは、もろもろ dbflute-example-with-non-rdb リポジトリに入っています。 こちらを参考に環境構築をしていきましょう。
このプロジェクトは、KVsFluteだけでなく solrFlute や EsFlute など、RDBではないFlute系の Example をまるごと含んでいます。
Great Thanks
KVsFluteは、"U-NEXTさん" より、コントリビュート頂きました。
ありがとうございます!