2

「Spring Data」の目的を理解しようとしているときに、この記事に出くわし、Gemfire/Redis リポジトリとそれに対応する Spring-Data コンポーネントを使用していくつかの例を試しました。誰かが次の質問を手伝ってくれませんか。

シナリオ: GemFire が私のデータストアだったとき、CRUD 操作を実行するために、GemFireTemplate でメソッドcreate、get、removeを使用する必要がありました。Redis が私のデータストアだったとき、RedisTemplate でメソッド.opsForHash().put 、 .opsForHash().get 、および .opsForHash().deleteを使用して、同じ CRUD 操作を実行する必要がありました。

質問:

Spring-Data は、基礎となるデータ ストアに一定レベルの抽象化を提供することになっていませんか? それぞれの CRUD メソッドを知っていて、基礎となるデータ ストアに基づいて異なる API を持っていることが期待される場合、Spring-Data コンポーネントはどのような抽象化をもたらしますか? Gemfire 用の Jedis または Java クライアントを直接使用して、これらのデータストア固有の CRUD 操作を実行することはできませんか?

このリンクはそれを説明しているようですが、それを理解するには助けが必要なようです。

すべての永続ストアに対する一般的な API はありません。違いはあまりにも根本的です。ただし、Spring Data プロジェクトは、データにアクセスするための共通のプログラミング モデルを提供します。

4

3 に答える 3

6

ご質問ありがとうございます。Master Slave がすでに指摘しているように、Spring Data が提供する利点は多岐にわたりますが、ストア モジュール間でサポートされる機能の意味で機能的な違いがある場合があります。これらは、特定の基礎となるデータストアのさまざまな特性と機能、およびフォーカスと時間の制約によって部分的に動機付けられています。

Redis と Gemfire は、ストレージとアクセス モデルのようなキーと値を提供することで、同様のストア テクノロジを拡張するものです。ただし、Gemfire は Redis よりもはるかに豊富なクエリ機能を提供します。これが、Spring Data Gemfire がかなり前からリポジトリの抽象化を既に持っている理由の 1 つです。

一方、Redis は別の話です - マスター スレーブが既に述べたように、独自のカスタマイズされた Redis リポジトリを簡単に構築できます - そしてそれは多くの人が行うことです - しかし、通常、Redis との相互作用はユースケースに非常に固有であるため、私たちはそうしませんでした「保存」と「読み込み」以上のことを行う一般的な実装を動機付けるほどの機能的な重複は見られません。

Spring Data Redis にリポジトリの抽象化を追加するためのチケットがありますが、まだそれを行う時間がありません。

于 2015-03-10T15:19:00.760 に答える