This is a cache of http://dbflute.seasar.org/ja/manual/function/helper/kvsflute/index.html. It is a snapshot of the page at 2024-11-13T00:22:54.559+0000.
KV<strong>s</strong>Flute | DBFlute

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のダウンロード

本家リポジトリの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さん" より、コントリビュート頂きました。

ありがとうございます!