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๏ธโฃ ํ์ฉ ๋ฐฉ๋ฒ
- ๋น์ฆ๋์ค ๋ก์ง์ ๊ฐ์ฅ ์์ฒญ์ด ๋ง๊ณ ๋ณํ๊ฐ ์ ์๊ฒ์ผ๋ก ์์๋๋ API์ธ [์ ์ฒด ์ํ๋ชฉ๋ก ๋ถ๋ฌ์ค๊ธฐ](https://www.notion.so/cart-nickname-32276bb087a540e5ab0287f2696c41c9)์ [์ ํ ์์ธ์ ๋ณด ๋ถ๋ฌ์ค๊ธฐ](https://www.notion.so/product-productId-8fab3a55495a433d9103876413a43a1e) ์ ๊ฒฝ์ฐ 1๋ถ ์ฃผ๊ธฐ๋ก cache๋ฅผ update ์ํค๊ธฐ๋ก ๊ฒฐ์ ํ์๋ค.
@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();
}
}
-
๋ถํ ํ ์คํธ ๊ฒฐ๊ณผ
์ฐธ๊ณ ์๋ฃ
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)