トップ OSS紹介 Spring Data Redis

Spring Data Redis

サポート対象

NRIのOpenStandiaが提供するSpring Data Redis最新情報

バージョンアップ情報

Spring Data Redis情報

Spring Data Redisとは

Spring Data Redis は、オープンソースの Java で書かれたプロダクトで、データベースアクセスを簡単に行うためのプロジェクトである Spring Dataのメインモジュールの一つです。
Spring Data は、Spring Project のサブプロジェクトであり、対象のデータストアの特性を維持しつつ、使い慣れた Spring ベースのプログラミングが行えるようにすることを目標としています。
Spring Data Redis は、Redis との連携を簡単に行えるように開発されたものであり2011年12月14日にバージョン 1.0 がリリースされました。

主な特徴

Spring Data Redis には以下のような機能があります。

  • Redis ドライバー(Lettuce、Jedis)を通した低レベル抽象化の接続パッケージ
  • Redis ドライバ―の例外の Spring ポータブルデータアクセス例外への変換
  • Redis 操作、例外変換、シリアル化サポートなどを実行するための高レベル抽象化を行う RedisTemplate
  • Pub/Subサポート(メッセージ駆動型 POJO の MessageListenerContainer など)
  • Redis Sentinel、Redis Cluster のサポート
  • Lettuce ドライバーを使用したリアクティブ API
  • JDK、String、JSON、Spring オブジェクト/XML マッピングシリアライザー
  • Redis 用の JDK コレクション実装
  • アトミックカウンターサポートクラス
  • ソートおよびパイプライン機能
  • SORT、SORT/GET パターンとリターンバルクバリュー
  • Spring 3.1 キャッシュ抽象化のための Redis 実装
  • @EnableRedisRepositories を使用したカスタムクエリメソッドのサポートを含むリポジトリインターフェースの自動実装
  • リポジトリの CDI サポート

Spring Data Redis のサンプルコード

以下は、RedisTemplate を使用したサンプルです。

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.data.redis.connection.lettuce.LettuceConnectionFactory;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.serializer.StringRedisSerializer;
 
public class RedisApplication {
 
                     private static final Log LOG = LogFactory.getLog(RedisApplication.class);
 
                     public static void main(String[] args) {
 
                                          LettuceConnectionFactory connectionFactory = new LettuceConnectionFactory();
                                          connectionFactory.afterPropertiesSet();
 
                                          RedisTemplate<String, String> template = new RedisTemplate<>();
                                          template.setConnectionFactory(connectionFactory);
                                          template.setDefaultSerializer(StringRedisSerializer.UTF_8);
                                          template.afterPropertiesSet();
 
                                          template.opsForValue().set("foo", "bar");
 
                                          LOG.info("Value at foo:" + template.opsForValue().get("foo"));
 
                                          connectionFactory.destroy();
                     }
}

メリット・デメリット

メリット・必要性

  • 既にSpringFramework をご利用であれば、全体のアーキテクチャの一貫性が保たれ、スムーズな移行が望めます。
  • 簡単にRedisデータアクセスを実装することができます。
  • JavaオブジェクトとRedisのデータとのマッピングが容易になり直感的なデータ操作が行えます。

デメリット・注意点・課題

  • フレームワークの学習に時間がかかる可能性があります。

Spring Dataのメインモジュール

これ以外にも多くのコミュニティモジュールが公開されています。

  • Spring Data Radis 以外のSpring Dataのメインモジュールは以下のようなものがあります。
  • Spring Data Commons
  • Spring Data R2DBC
  • Spring Data JDBC
  • Spring Data JPA
  • Spring Data KeyValue
  • Spring Data LDAP
  • Spring Data REST
  • Spring Data MongoDB
  • Spring Data for Apache Cassandra
  • Spring Data for Apache Geode

これ以外にも多くのコミュニティモジュールが公開されています。

動作環境

Spring Data Redis 3.1.x では、Java 17 以上、 Redis 2.6 以上に対応しています。

Spring Data Redisのライセンス

Spring Data Redisのライセンスは、「Apacheライセンスバージョン2」(Apache License version 2)というライセンスに基づいて公開され、営利、非営利を問わず、誰でも自由かつ無償で利用・改変・再配布できるようになっています。

オープンソース年間サポートサービス

OpenStandiaではOSSを安心してご利用いただけるように、オープンソース年間サポートサービスをご提供しております。
サポートしているOSSは下記ページをご参照ください。

お気軽にお問い合わせください

関連OSS

  • Spring Data JPA
    サポート対象

    Spring Data JPA

    Spring Data JPA(スプリングデータジェーピーエー)は、Javaの永続化技術であるJPA(Jakarta Persistence API)を簡単に利用できるようにするためのSpringプロジェクトの一部です。

  • Spring Framework
    サポート対象

    Spring Framework

    スプリングフレームワーク。Javaプラットフォーム向けのオープンソースアプリケーションフレームワークです。

  • Redis
    サポート対象

    Redis

    レディス。キーバリュー型NoSQLデータベース 。スキーマレスに注目が集まるNoSQLデータベースです。

オープンソースに関するさまざまな課題、OpenStandiaがまるごと解決します。
下記コンテンツも
あわせてご確認ください。