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さん" より、コントリビュート頂きました。
ありがとうございます!