支持类
包org.springframework.data.redis.support提供各种可重用的组件,这些组件依赖 Redis 作为后备存储。
目前,该软件包在 Redis 之上包含各种基于 JDK 的接口实现,例如原子计数器和 JDK 集合。
RedisList与 Java 21 向前兼容SequencedCollection. | 
原子计数器可以轻松包装 Redis 密钥递增,而集合则可以轻松管理 Redis 密钥,同时将存储暴露或 API 泄漏降至最低。
具体而言,RedisSet和RedisZSet通过接口,可以轻松访问 Redis 支持的 set作,例如intersection和union.RedisList实现List,Queue和Deque合约(及其等效的阻塞兄弟姐妹),将存储公开为 FIFO (先进先出)、LIFO (后进先出) 或具有最少配置的上限集合。
以下示例显示了使用RedisList:
- 
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:
public class AnotherExample {
  // injected
  private Deque<String> queue;
  public void addTag(String tag) {
    queue.push(tag);
  }
}
如前面的示例所示,使用代码与实际的存储实现分离。 事实上,没有迹象表明底层使用了 Redis。 这使得从开发环境迁移到生产环境变得透明,并大大提高了可测试性(Redis 实现可以替换为内存中的实现)。