Vamos ha hacer una pequeña cache para unos servicios en spring boot.
Primero es necesario tener instalado Redis, y si ...
Luego agregamos esta dependencia a nuestro proyecto (uso gradle) :
implementation("org.springframework.boot:spring-boot-starter-cache")
implementation("org.springframework.boot:spring-boot-starter-data-redis")
Luego configuramos en nuestro cache con esta clase : 
 package com.uap.demo.config
import org.springframework.context.annotation.Bean
import org.springframework.context.annotation.Configuration
import org.springframework.data.redis.cache.RedisCacheConfiguration
import org.springframework.data.redis.serializer.GenericJackson2JsonRedisSerializer
import org.springframework.data.redis.serializer.RedisSerializationContext.SerializationPair
import java.time.Duration
@Configuration
class CacheConfig {
    @Bean
    fun cacheConfiguration(): RedisCacheConfiguration? {
        return RedisCacheConfiguration.defaultCacheConfig()
            .entryTtl(Duration.ofMinutes(60))
            .disableCachingNullValues()
            .serializeValuesWith(SerializationPair.fromSerializer(GenericJackson2JsonRedisSerializer()))
    }
}
Yo le puse 60 minutos de vida a mis datos dado que no cambian tan frecuente. 
Ahora en el Application agregamos @EnableCaching, algo así : 
@SpringBootApplication
@EnableCaching
class DemoApplication
fun main(args: Array<String>) {
	runApplication<DemoApplication>(*args)
}
Por ultimo a nuestro servicio le decimos que vamos a cachear los datos, en este ejemplo tengo un servicio X : 
@Service
class XServiceImpl : XService {
    @Cacheable(value = ["xxxxx"])
    override fun x(parametro: String): List<String> {
          ...
    }
}
Lo que va a ocurrir es que cuando llamemos al servicio con un parametro, se va generar una entrada en Redis, y la próxima vez que llamemos este servicio usará la cache. 
Y listo!!! 

