Redis๋?
Redis๋ ์คํ ์์ค, ์ธ ๋ฉ๋ชจ๋ฆฌ ๋ฐ์ดํฐ ๊ตฌ์กฐ ์คํ ์ด์ด๋ฉฐ, ๋ค์ํ ๋ฐ์ดํฐ ๊ตฌ์กฐ๋ฅผ ์ง์ํ๋ค.
์ฃผ์ ์ฉ๋๋ก๋ ์บ์ฑ, ๋ฉ์์ง, ์ธ์ ๊ด๋ฆฌ ๋ฑ์ด ์๋ค. Redis๋ ๊ธฐ๋ณธ์ ์ผ๋ก ๋์คํฌ๊ฐ ์๋ ๋ฉ๋ชจ๋ฆฌ์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ฏ๋ก ๋งค์ฐ ๋น ๋ฅธ ์๋๋ก ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ ์ ์๋ค. ๋ํ Redis๋ ์์์ฑ์ ์ง์ํ์ฌ ๋์คํฌ์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ ์๋ ์๋ค. Redis๋ ๋ค์ํ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ก ์์ฑ๋ ํด๋ผ์ด์ธํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ง์ํ๋ฉฐ, ํด๋ฌ์คํฐ๋ง ๋ฐ ๋ง์คํฐ-์ฌ๋ ์ด๋ธ ๋ณต์ ์ ๊ฐ์ ๊ณ ๊ธ ๊ธฐ๋ฅ๋ ์ ๊ณตํ๋ค. Redis๋ ๋ง์ ์ดํ๋ฆฌ์ผ์ด์ ์์ ์ฌ์ฉ๋๊ณ ์์ผ๋ฉฐ, ์๋์ ์ฑ๋ฅ์ด ์ค์ํ ์์คํ ์์ ํนํ ์ ์ฉํ๋ค.
Redis์ ์ฅ๋จ์
์ฅ์
- ๋น ๋ฅธ ๋ฐ์ดํฐ ์ก์ธ์ค
Redis๋ ๋ฉ๋ชจ๋ฆฌ์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๊ธฐ ๋๋ฌธ์, ๋์คํฌ์์ ๋ฐ์ดํฐ๋ฅผ ์ฝ์ด์ค๋๋ฐ ํ์ํ ์๊ฐ์ ์ค์ฌ ๋ฐ์ดํฐ ์ก์ธ์ค ์๋๊ฐ ๋งค์ฐ ๋น ๋ฅด๋ค. - ๋ค์ํ ๋ฐ์ดํฐ ๊ตฌ์กฐ
List, Set, Sorted Set, Hash ๋ฑ์ ๋ฐ์ดํฐ ๊ตฌ์กฐ๋ฅผ ์ ๊ณตํ๋ค. - Pub/Sub ๋ฉ์ปค๋์ฆ
Redis๋ Pub/Sub ๋ฉ์ปค๋์ฆ์ ์ง์ํ๋ค. ์ด๋ฅผ ์ฌ์ฉํ์ฌ ๋ฉ์์ง ํ, ์ค์๊ฐ ์ฑํ , ์ด๋ฒคํธ ์ฒ๋ฆฌ ๋ฑ ๋ค์ํ ์ฉ๋๋ก ์ฌ์ฉํ ์ ์๋ค. - ๋ฐ์ดํฐ์ ์์์ฑ ๋ณด์ฅ
Redis๋ ๋ฐ์ดํฐ๋ฅผ ๋์คํฌ์ ์ ์ฅํ ์ ์๋ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ค. ์ด๋ฅผ ํตํด Redis๊ฐ ๋น์ ์์ ์ผ๋ก ์ข ๋ฃ๋๊ฑฐ๋ ์ฅ์ ๊ฐ ๋ฐ์ํด๋ ๋ฐ์ดํฐ๋ฅผ ์์ ํ๊ฒ ๋ณด์กดํ ์ ์๋ค.
๋จ์
- ๋ฉ๋ชจ๋ฆฌ ์ ์ฝ
Redis๋ ๋ฉ๋ชจ๋ฆฌ์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๊ธฐ ๋๋ฌธ์, ๋ฉ๋ชจ๋ฆฌ์ ์ฉ๋์ ๋ฐ๋ผ ์ ์ฅํ ์ ์๋ ๋ฐ์ดํฐ์ ์์ด ์ ํ๋๋ค. - ๋ฐ์ดํฐ์ ์ผ๊ด์ฑ ์ ์ง
Redis๋ ๋ฉ๋ชจ๋ฆฌ์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ค๊ฐ Redis ์๋ฒ๊ฐ ์ฅ์ ๊ฐ ๋ฐ์ํ๋ ๊ฒฝ์ฐ ๋ฐ์ดํฐ์ ์ผ๋ถ ๋๋ ์ ์ฒด๊ฐ ์ ์ค๋ ์ ์๋ค. ์ด๋ฅผ ๋ฐฉ์งํ๊ธฐ ์ํด Redis๋ ๋ฐ์ดํฐ๋ฅผ ๋์คํฌ์ ์ ์ฅํ๋ ๊ธฐ๋ฅ์ ์ ๊ณตํ์ง๋ง ์ด๋ฅผ ์ฌ์ฉํ๋ฉด ๋ฐ์ดํฐ ์ก์ธ์ค ์๋๊ฐ ๋๋ ค์ง ์ ์์ผ๋ฉฐ, ๋์คํฌ์ ์์ ๋ฑ ๋ค์ํ ๋ฌธ์ ๊ฐ ๋ฐ์ํ ์ ์๋ค. - ์ค์ผ์ผ ์์ ๋ฌธ์
Redis๋ ๋จ์ผ ์ค๋ ๋๋ก ๋์ํ๋ฏ๋ก, ๋๊ท๋ชจ ๋ฐ์ดํฐ ์ฒ๋ฆฌ๋ฅผ ์ํด ์ฌ๋ฌ Redis ์ธ์คํด์ค๋ฅผ ๋์์ ์คํํด์ผ ํ๋ค. ์ด๋ ๋ณต์กํ ๊ตฌ์ฑ๊ณผ ๊ด๋ฆฌ๋ฅผ ํ์๋ก ํ๋ฉฐ, ์ด๋ก ์ธํ ๋ถํ ๋ฐ ์ง์ฐ ๋ฌธ์ ๋ ๋ฐ์ํ ์ ์๋ค.
Spring์์ Redis ์ฌ์ฉํ๊ธฐ
1. ์์กด์ฑ ์ถ๊ฐ
Mavenํ๊ฒฝ
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>3.6.1</version>
</dependency>
Gradle ํ๊ฒฝ
dependencies {
implementation 'redis.clients:jedis:3.6.1'
}
2. Redis ์ค์
application.properties์ ๋ค์์ ์ถ๊ฐํ๋ค.
spring.redis.host=localhost
spring.redis.port=6379
์์๋ Redis ์๋ฒ์ IP์ฃผ์, ์๋๋ ํฌํธ ๋ฒํธ๋ฅผ ์ ๋ ฅํ๋ฉด ๋๋ค.
3. Redis ์ฌ์ฉํ๊ธฐ
Redis๋ฅผ ์ฌ์ฉํ๊ธฐ ์ํด์๋ RedisTemplate ํด๋์ค๋ฅผ ์ฌ์ฉํ๋ค.
์ฌ๊ธฐ์ RedisTemplate์ ์ฌ์ฉํ๊ธฐ ์ํด์ RedisConnectionFactory๋ฅผ ์ค์ ํด์ผ ํ๋ค.
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Component;
@Component
public class MyRedisService {
@Autowired
private RedisTemplate<String, String> redisTemplate;
//๋ฐ์ดํฐ ์ ์ฅํ๊ธฐ
public void saveData(String key, String value) {
redisTemplate.opsForValue().set(key, value);
}
// ๋ฐ์ดํฐ ๊ฐ์ ธ์ค๊ธฐ
public String getData(String key) {
return redisTemplate.opsForValue().get(key);
}
}
'BackEnd > Spring Boot' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Spring] ๋ถ์ฐ ์์คํ ์์ ํจ๊ณผ์ ์ธ ๋ฐ์ดํฐ ์ ๋ฌ ๋ฐฉ๋ฒ (1) - RDB (1) | 2023.11.04 |
---|---|
[Spring] Docker์์ Static File ์ฒ๋ฆฌํ๊ธฐ (0) | 2023.09.02 |
[Spring] MongoDB ์ ์ฉ, ํ ์คํธ (0) | 2023.09.02 |
[Spring] ์ ํ ๋ก๊ทธ์ธ ๊ตฌํํ๊ธฐ (0) | 2023.09.01 |
[Java] Jwt๋ฅผ ์ด์ฉํ์ฌ Api์๋ฒ ๊ฐ์ธ์ ๋ณด ์ํธํํ๊ธฐ (0) | 2023.09.01 |