Я мог бы решить проблему, убедившись, что prefixKyesWith установлен для каждого сегмента кэша, поэтому операции put и get ищут правильное место для хранения / чтения.
/ **
* получает Redis кеш писатель
* @return RedisCacheWriter
* /
@Bean
RedisCacheWriter redisCacheWriter () {
return RedisCacheWriter.lockingRedisCacheWriter (lettuceClientConfigurationConnectionFactory ());
}
/ **
* получает менеджер кеша
* @return CacheManager
* /
@Bean
@Primary
CacheManager cacheManager () {
RedisSerializer genericJackson2JsonRedisSerializer = new GenericJackson2JsonRedisSerializer ();
Карта cacheNamesConfigurationMap = new HashMap <> ();
// configure catch buckets with prefixKeysWith information
cacheNamesConfigurationMap.put(CacheBucket.A, RedisCacheConfiguration.defaultCacheConfig().prefixKeysWith(CacheBucket.A+":")
.serializeValuesWith(RedisSerializationContext.SerializationPair.fromSerializer(genericJackson2JsonRedisSerializer)));
cacheNamesConfigurationMap.put(CacheBucket.B, RedisCacheConfiguration.defaultCacheConfig().prefixKeysWith(CacheBucket.B+":")
.serializeValuesWith(RedisSerializationContext.SerializationPair.fromSerializer(genericJackson2JsonRedisSerializer)));
cacheNamesConfigurationMap.put(CacheBucket.D, RedisCacheConfiguration.defaultCacheConfig().prefixKeysWith(CacheBucket.D+":")
.serializeValuesWith(RedisSerializationContext.SerializationPair.fromSerializer(genericJackson2JsonRedisSerializer)));
cacheNamesConfigurationMap.put(CacheBucket.E, RedisCacheConfiguration.defaultCacheConfig().prefixKeysWith(CacheBucket.E+":")
.serializeValuesWith(RedisSerializationContext.SerializationPair.fromSerializer(genericJackson2JsonRedisSerializer)));
cacheNamesConfigurationMap.put(CacheBucket.F, RedisCacheConfiguration.defaultCacheConfig().prefixKeysWith(CacheBucket.F+":")
.serializeValuesWith(RedisSerializationContext.SerializationPair.fromSerializer(genericJackson2JsonRedisSerializer)));
RedisCacheManager cacheManager = new RedisCacheManager(redisCacheWriter(), cacheConfiguration(), cacheNamesConfigurationMap);
cacheManager.setTransactionAware(true);
cacheManager.afterPropertiesSet();
return cacheManager;
}