サポートクラス

パッケージ org.springframework.data.redis.support は、バッキングストアとして Redis に依存するさまざまな再利用可能なコンポーネントを提供します。現在、パッケージには、アトミック (標準 Javadoc) カウンターや JDK コレクション (標準 Javadoc) など、Redis に加えてさまざまな JDK ベースのインターフェース実装が含まれています。

RedisList (Javadoc) は Java 21 SequencedCollection と前方互換性があります。

アトミックカウンターを使用すると、Redis キーの増分を簡単にラップできます。一方、コレクションを使用すると、ストレージの露出や API の漏洩を最小限に抑えながら、Redis キーを簡単に管理できます。特に、RedisSet (Javadoc) および RedisZSet (Javadoc) インターフェースを使用すると、intersection や union など、Redis でサポートされているセット操作に簡単にアクセスできます。RedisList (Javadoc) は、Redis の上に ListQueueDeque 契約 (および同等のブロッキングシブリング) を実装し、最小限の構成で FIFO (先入れ先出し)、LIFO (後入れ先出し)、または上限付きコレクションとしてストレージを公開します。次の例は、RedisList (Javadoc) を使用する Bean の構成を示しています。

  • Java

  • XML

@Configuration
class MyConfig {

  // …

  @Bean
  RedisList<String> stringRedisTemplate(RedisTemplate<String, String> redisTemplate) {
    return new DefaultRedisList<>(template, "queue-key");
  }
}
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xmlns:p="http://www.springframework.org/schema/p" xsi:schemaLocation="
  http://www.springframework.org/schema/beans https://www.springframework.org/schema/beans/spring-beans.xsd">

  <bean id="queue" class="org.springframework.data.redis.support.collections.DefaultRedisList">
    <constructor-arg ref="redisTemplate"/>
    <constructor-arg value="queue-key"/>
  </bean>

</beans>

次の例は、Deque の Java 構成例を示しています。

public class AnotherExample {

  // injected
  private Deque<String> queue;

  public void addTag(String tag) {
    queue.push(tag);
  }
}

前の例に示されているように、消費コードは実際のストレージ実装から切り離されています。実際、Redis がそで使用されているという兆候はありません。これにより、開発環境から本番環境への移行が透過的になり、テスト容易性が大幅に向上します(Redis 実装はインメモリ実装に置き換えることができます)。