トップ OSS紹介 Spring Data Redis

Spring Data Redis

サポート対象

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

バージョンアップ情報

Spring Data Redis情報

Spring Data Redis情報更新日:2024/12/06

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がまるごと解決します。
下記コンテンツも
あわせてご確認ください。