サポートクラス
パッケージ 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 の上に List
、Queue
、Deque
契約 (および同等のブロッキングシブリング) を実装し、最小限の構成で 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 実装はインメモリ実装に置き換えることができます)。