๐ ์๊ฐ
Spring Data Redis๋ ๋ ๋์ค์์ ํตํฉ์ ์ง์ํ์ฌ ๊ฐ๋ฐ์๋ค์ด ๋ ๋์ค๋ฅผ ์ฝ๊ฒ ์ฌ์ฉํ ์ ์๋๋ก ๋์์ค๋ค. ํด๋น ํฌ์คํ ์์๋ ๋ ๋์ค์ ๊ธฐ๋ณธ ๋ช ๋ น์ด ๋ค์ Spring Data Redis๋ฅผ ํ์ฉํ์ฌ ์ด๋ป๊ฒ ๊ตฌํํ๋์ง ์์๋ณด์.
์์กด์ฑ ์ถ๊ฐ
๋จผ์ , ํ๋ก์ ํธ์ Spring Data Redis ์์กด์ฑ์ ์ถ๊ฐํด์ผ ํ๋ค. Maven์ ์ฌ์ฉํ๋ค๋ฉด pom.xml์ ๋ค์๊ณผ ๊ฐ์ด ์์กด์ฑ์ ์ถ๊ฐํ๋ค.
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
Gradle์ ์ฌ์ฉํ๋ค๋ฉด, build.gradle ํ์ผ์ ๋ค์๊ณผ ๊ฐ์ด ์ถ๊ฐํ๋ค.
implementation 'org.springframework.boot:spring-boot-starter-data-redis'
Redis ์ค์
application.properties ๋๋ application.yml ํ์ผ์ Redis ์๋ฒ ์ ๋ณด๋ฅผ ์ค์ ํด์ผ ํ๋ค.
spring.redis.host=localhost
spring.redis.port=6379
RedisTemplate์ ํตํด ๊ธฐ๋ณธ ๋ช ๋ น์ด ์ฌ์ฉํ๊ธฐ
RedisTemplate์ Redis์์ ์ํธ ์์ฉ์ ์ถ์ํํ๊ณ ์ผ๋ฐ์ ์ธ ๋ฐ์ดํฐ ์ก์ธ์ค ์์ ์ ๋จ์ํํด ์ฃผ๋ ์ญํ ์ ํ๋ค.
RedisTemplate์ ๋ ๋์ค ๋ช ๋ น์ด๋ฅผ ์คํํ ์ ์๋ opsFor~() ๋ก ์์๋๋ ๋ค์ํ ๋ฉ์๋๋ฅผ ์ ๊ณตํ๋ฉฐ,์ฃผ๋ก ๋ฐ์ดํฐ๋ฅผ ์ฐ๊ณ ์ฝ๋ ์์ , ์บ์ ๊ตฌํ, ์ธ์ ์ ์ฅ ๋ฑ ๋ค์ํ ์ฉ๋๋ก ํ์ฉ์ด ๊ฐ๋ฅํ๋ค.
๋ ๋์ค์์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ ์ ์๋ ๊ฐ์ฅ ๊ฐ๋จํ ์๋ฃ ๊ตฌ์กฐ์ธ string ๊ฐ์ ์ถ๊ฐํ๊ณ ์ญ์ ํ๋ ํ ์คํธ๋ฅผ ๊ตฌํํด ๋ณธ๋ค.String ๋ฐฉ์ ๊ฐ์ ๊ฒฝ์ฐ, opsForValue() ๊ฐ์ผ๋ก ์ ๊ทผํ ์ ์๋ค.
RedisStringService
@Service
@RequiredArgsConstructor
public class RedisStringService {
private final RedisTemplate<String, String> redisTemplate;
public void set(String key, String value) {
redisTemplate.opsForValue().set(key, value);
}
public String get(String key) {
return redisTemplate.opsForValue().get(key);
}
public void del(String key) {
redisTemplate.delete(key);
}
}
Test
@SpringBootTest
class RedisStringServiceTest {
@Autowired
private RedisStringService redisStringService;
@Test
void testSetAndGet() {
// given
String key = "BlackShiba";
String value = "ShibaHolic";
// when
redisStringService.set(key, value);
// then
String result = redisStringService.get(key);
assertThat(result).isEqualTo("ShibaHolic");
}
@Test
void testDelete() {
// given
String key = "BlackShiba";
String value = "ShibaHolic";
redisStringService.set(key, value);
// when
redisStringService.del(key);
// then
String result = redisStringService.get(key);
assertThat(result).isNull();
}
}
Spring Data Redis๋ฅผ ์ฌ์ฉํ์ฌ ๊ธฐ๋ณธ์ ์ธ ๋ ๋์ค ๋ช ๋ น์ด๋ฅผ ๊ตฌํํ๋ ๋ฐฉ๋ฒ์ ๋ํด ์์๋ณด์๋ค.
๋ณดํต Redis๋ฅผ ์บ์ฑ/์ธ์ ์์ ๋ง์ด ํ์ฉํ๋๋ฐ, ๋ ๋์ค์์ ์ ๊ณตํ๋ ์ด๋ฐ ๊ธฐ๋ณธ ๋ช ๋ น์ด๋ฅผ ์ ํ๋ฆฌ์ผ์ด์ ์์ ์ ์ ํ ํ์ฉํ๋ค๋ฉด, ์๋ฒ ๋ฆฌ์์ค ์ฌ์ฉ๋ ๊ฐ์ ์ ํจ๊ณผ๋ฅผ ๋ณผ ์๋ ์์ผ๋ ์ ํ์ฉํด ๋ณด์.
๋๊ธ