键空间
键空间(Keyspaces)定义了用于创建 Redis 哈希实际键的前缀。
默认情况下,该前缀被设置为 getClass().getName()。
您可以通过在聚合根级别上添加 @RedisHash 注解,或通过编程方式进行配置来更改此默认值。
然而,使用注解指定的键空间将优先于任何其他配置。
以下示例展示了如何使用 @EnableRedisRepositories 注解设置 keyspace 配置:
示例 1. 通过
@EnableRedisRepositories 设置 Keyspace@Configuration
@EnableRedisRepositories(keyspaceConfiguration = MyKeyspaceConfiguration.class)
public class ApplicationConfig {
//... RedisConnectionFactory and RedisTemplate Bean definitions omitted
public static class MyKeyspaceConfiguration extends KeyspaceConfiguration {
@Override
protected Iterable<KeyspaceSettings> initialConfiguration() {
return Collections.singleton(new KeyspaceSettings(Person.class, "people"));
}
}
}
以下示例展示了如何以编程方式设置 keyspace:
示例 2. 以编程方式设置 Keyspace
@Configuration
@EnableRedisRepositories
public class ApplicationConfig {
//... RedisConnectionFactory and RedisTemplate Bean definitions omitted
@Bean
public RedisMappingContext keyValueMappingContext() {
return new RedisMappingContext(
new MappingConfiguration(new IndexConfiguration(), new MyKeyspaceConfiguration()));
}
public static class MyKeyspaceConfiguration extends KeyspaceConfiguration {
@Override
protected Iterable<KeyspaceSettings> initialConfiguration() {
return Collections.singleton(new KeyspaceSettings(Person.class, "people"));
}
}
}