diff --git a/src/main/java/com/social/instagram/InstagramSocialApplication.java b/src/main/java/com/social/instagram/InstagramSocialApplication.java index fa43fc3..b8f664d 100644 --- a/src/main/java/com/social/instagram/InstagramSocialApplication.java +++ b/src/main/java/com/social/instagram/InstagramSocialApplication.java @@ -2,6 +2,7 @@ import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.cache.annotation.EnableCaching; import org.springframework.context.annotation.EnableAspectJAutoProxy; import org.springframework.data.jpa.repository.config.EnableJpaAuditing; @@ -17,6 +18,7 @@ @SpringBootApplication @EnableAspectJAutoProxy @EnableJpaAuditing +@EnableCaching public class InstagramSocialApplication { public static void main(String[] args) { diff --git a/src/main/java/com/social/instagram/config/RedisCacheManagerConfig.java b/src/main/java/com/social/instagram/config/RedisCacheManagerConfig.java new file mode 100644 index 0000000..6605441 --- /dev/null +++ b/src/main/java/com/social/instagram/config/RedisCacheManagerConfig.java @@ -0,0 +1,36 @@ +package com.social.instagram.config; + +import lombok.RequiredArgsConstructor; +import org.springframework.cache.CacheManager; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.data.redis.cache.RedisCacheConfiguration; +import org.springframework.data.redis.cache.RedisCacheManager; +import org.springframework.data.redis.connection.RedisConnectionFactory; +import org.springframework.data.redis.serializer.GenericJackson2JsonRedisSerializer; +import org.springframework.data.redis.serializer.RedisSerializationContext; +import org.springframework.data.redis.serializer.StringRedisSerializer; + +@Configuration +@RequiredArgsConstructor +public class RedisCacheManagerConfig { + + private final RedisConnectionFactory redisConnectionFactory; + + @Bean + public CacheManager redisCacheManager() { + return RedisCacheManager.RedisCacheManagerBuilder + .fromConnectionFactory(redisConnectionFactory) + .cacheDefaults(redisCacheConfiguration()) + .build(); + } + + private RedisCacheConfiguration redisCacheConfiguration() { + return RedisCacheConfiguration.defaultCacheConfig() + .serializeKeysWith( + RedisSerializationContext.SerializationPair.fromSerializer(new StringRedisSerializer())) + .serializeValuesWith( + RedisSerializationContext.SerializationPair.fromSerializer(new GenericJackson2JsonRedisSerializer())); + } + +} \ No newline at end of file