Cache - showMeTheMoneyPrac/BE_Repo GitHub Wiki

1๏ธโƒฃ ์บ์‹ฑ์„ ์ ์šฉํ•œ ์ด์œ ์™€ Redis๋ฅผ ์บ์‹ฑ DB๋กœ ์‚ฌ์šฉํ•œ ์ด์œ ?

๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์ƒ ๊ฐ€์žฅ ๋งŽ์ด ์ด์šฉ๋  ๊ฒƒ์œผ๋กœ ์˜ˆ์ƒ๋˜๋Š” API์˜ ๊ฒฝ์šฐ, ์บ์‹ฑ ์ ์šฉ์‹œ์— ์„œ๋ฒ„์— ๋ถ€ํ•˜๋ฅผ ์ค„์ผ ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์ ์šฉํ•˜๊ฒŒ ๋˜์—ˆ๋‹ค.

์บ์‹ฑ DB๋กœ๋Š” NoSQL์„ ์„ ํƒํ•˜๋Š”๊ฒƒ์ด ํšจ์œจ์ ์ด๋ผ๊ณ  ์ƒ๊ฐ ํ•˜์˜€๋‹ค. ํ˜„์žฌ MySQL์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์œผ๋ฏ€๋กœ NoSql ์˜ ๋‹จ์ ์ธ ๋ฐ์ดํ„ฐ ์ค‘๋ณต์ด ์‚ฌ๋ผ์ง€๊ธฐ ๋•Œ๋ฌธ์— ์ €์žฅํ•˜๊ณ  ์กฐํšŒํ•˜๋Š” ์†๋„๊ฐ€ ๋น ๋ฅธ์ ๋งŒ ์ทจํ•  ์ˆ˜ ์žˆ๋‹ค๊ณ  ํŒ๋‹จ ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

์บ์‹ฑ์— ์ ํ•ฉํ•œ Key-Value DB์ค‘ Spring ์—์„œ ๊ถŒ์žฅํ•˜๋Š” Redis๋ฅผ ์บ์‹ฑ DB๋กœ ์ •ํ•˜๊ฒŒ ๋˜์—ˆ๋‹ค.

[Spring Data Redis](https://docs.spring.io/spring-data/data-redis/docs/current/reference/html/#reference)

2๏ธโƒฃ ํ™œ์šฉ ๋ฐฉ๋ฒ•

@Configuration
@EnableCaching
public class RedisCacheConfig {

    @Bean
    public CacheManager productCacheManager(RedisConnectionFactory connectionFactory) {
        RedisCacheConfiguration redisCacheConfiguration = RedisCacheConfiguration.defaultCacheConfig()
                .serializeKeysWith(RedisSerializationContext.SerializationPair.fromSerializer(new StringRedisSerializer()))
                .serializeValuesWith(RedisSerializationContext.SerializationPair.fromSerializer(new GenericJackson2JsonRedisSerializer()))
                .entryTtl(Duration.ofSeconds(60L)); //ttl์ฃผ๊ธฐ

        return RedisCacheManager.RedisCacheManagerBuilder.fromConnectionFactory(connectionFactory).cacheDefaults(redisCacheConfiguration).build();
    }

}
  • ๋ถ€ํ•˜ ํ…Œ์ŠคํŠธ ๊ฒฐ๊ณผ

    image

์ฐธ๊ณ ์ž๋ฃŒ

https://deveric.tistory.com/65

https://docs.spring.io/spring-data/data-redis/docs/current/reference/html/#reference

[https://jaemunbro.medium.com/nosql-๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค-ํŠน์„ฑ-๋น„๊ต-c9abe1b2838c](https://jaemunbro.medium.com/nosql-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4-%ED%8A%B9%EC%84%B1-%EB%B9%84%EA%B5%90-c9abe1b2838c)

https://www.lostcatbox.com/2020/10/23/DB-cache-server/