Notice
Recent Posts
Recent Comments
Link
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

지석이의 일기

Redis를 CentOS 서버에 설치하고 Spring Boot에서 사용하기 본문

Server

Redis를 CentOS 서버에 설치하고 Spring Boot에서 사용하기

91년도에 철산에서 태어난 최지석 2024. 1. 15. 00:18

Redis를 CentOS 서버에 설치하고 Spring Boot에서 사용하기

안녕하세요, 오늘은 CentOS 서버에 Redis를 설치하고, Spring Boot 애플리케이션에서 이를 사용하는 방법에 대해 알아보겠습니다.

CentOS 서버에 Redis 설치하기

  1. 먼저, CentOS에서 추가 패키지를 설치할 수 있는 EPEL(Extra Packages for Enterprise Linux) 저장소를 설치합니다.
sudo yum install epel-release
  1. EPEL 저장소를 설치한 후, Redis를 설치합니다.
sudo yum install redis
  1. 설치가 완료되면, Redis 서비스를 시작합니다.
sudo systemctl start redis
  1. Redis가 정상적으로 작동하는지 확인합니다.
redis-cli ping

"pong"이 출력되면 정상적으로 작동하는 것입니다.

  1. Redis 서비스가 시스템 부팅 시에 자동으로 시작되도록 설정합니다.
sudo systemctl enable redis
  1. Redis 설정은 /etc/redis.conf에서 변경할 수 있습니다. 설정을 변경한 후에는 Redis 서비스를 재시작해야 변경 사항이 적용됩니다.
sudo systemctl restart redis

Redis 설정 파일 위치 확인하기

Redis 설정 파일은 보통 /etc/redis/ 또는 /etc/ 디렉토리에 위치해 있습니다. 아래 명령으로 위치를 확인해봅시다.

sudo find / -name redis.conf

Redis 설정 파일 열어보기

Redis 설정 파일은 텍스트 에디터를 이용해 열 수 있습니다. 예를 들어, vim 에디터를 사용한다면 다음과 같이 입력합니다:

sudo vim /etc/redis/redis.conf

Redis 설정 파일의 주요 항목들

Redis 설정 파일 안에는 많은 설정 항목들이 있습니다. 여기서는 주요 항목들만 간단히 살펴보겠습니다.

  • bind: Redis가 특정 IP 주소를 듣도록 설정합니다. 기본적으로 localhost를 사용합니다. 전체 다 허용시 0.0.0.0으로 수정해주세요
  • port: Redis가 사용할 포트를 설정합니다. 기본값은 6379입니다.
  • timeout: 클라이언트와의 아이들 상태(idle)가 이 시간을 초과하면 연결이 끊어집니다.0으로 설정하면 타임아웃이 없습니다.
  • loglevel: Redis그의 레벨을 설정합니다. "debug", "verbose", "notice", "warning" 중 하나를 선택할 수 있습니다.
  • logfile: Redis 로그 파일의 위치를 설정합니다.
  • databases: Redis가 제공할 데이터베이스의 수를 설정합니다. 기본값은 16입니다.
  • save: 디스크에 스냅샷을 저장할 시점을 설정합니다. 예를 들어, save 900 1은 900초(15분) 동안 1회 이상의 변경이 발생하면 스냅샷을 저장하라는 의미입니다.
  • dir: 스냅샷 파일이 저장될 디렉토리를 설정합니다.
  • maxmemory: Redis가 사용할 수 있는 최대 메모리 크기를 설정합니다 이 크기를 초과하면, maxmemory-policy에 따라 처리합니다.
  • maxmemory-policy: 메모리 한도 초과 시떤 키를 제거할지 정책을 설정합니다.
  • requirepass : 다른 ip에서 redis접근이 가능하면 여러 외부에서 접근해서 이상한 데이터를 셋팅합니다. 외부오픈이 되어 있을경우 비밀번호를 셋팅해주세요.

Redis 설정 변경 후 재시작하기

설정 파일을 변경한 후에는 반드시 Redis 서비스를 재시작해 변경 사항이 적용됩니다.

sudo systemctl restart redis

Spring Boot 애플리케이션에서 Redis 설정하기

Spring Boot에서 Redis를 사용하려면, 먼저 spring-boot-starter-data-redis 의존성을 추가해야 합니다.

Maven을 사용하는 경우 pom.xml에 아래와 같이 추가합니다.

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>

Gradle을 사용하는 경우 build.gradle에 아래와 같이 추가합니다.

dependencies {
    implementation 'org.springframework.boot:spring-boot-starter-data-redis'
}

의존성을 추가한 후, application.yml 파일에 아래와 같이 Redis 설정을 추가합니다.

spring:
  redis:
    host: localhost # Redis 서버 주소
    port: 6379 # Redis 포트 번호
	password : RHXNLaeet # redis.config에  requirepass 셋팅시

Spring Boot 애플리케이션에서 Redis 사용하기

이제 Spring Boot 애플리케이션에서 StringRedisTemplate나 RedisTemplate를 이용해 Redis를 사용할 수 있습니다.

@Autowired
private StringRedisTemplate redisTemplate;

public void someMethod() {
    ValueOperations<String, String> ops = redisTemplate.opsForValue();
    ops.set("key", "value");
    System.out.println("Found key " + ops.get("key"));
}

이상으로, CentOS 서버에 Redis를 설치하고 Spring Boot 애플리케이션에서 이를 사용하는 방법에 대해 알아보았습니다. 이제 쉽게 Redis를 이용해 데이터를 저장하고 관리할 수 있습니다. 

 

Redis 서버 내에 저장된 데이터를 확인하는 가장 기본적인 방법은 redis-cli라는 커맨드 라인 인터페이스를 사용하는 것입니다.

  1. 먼저 redis-cli를 통해 Redis 서버에 접속합니다.
 
redis-cli
  1. 접속이 성공하면, keys * 명령어를 이용해 모든 키를 볼 수 있습니다.
keys *

위 명령어는 Redis 서버에 저장된 모든 키의 리스트를 반환합니다. 만약 특정 패턴에 맞는 키만 보고 싶다면, keys 명령어에 원하는 패턴을 넣을 수 있습니다. 예를 들어, "user*" 패턴을 가진 키를 보고 싶다면 keys user*와 같이 입력하면 됩니다.

  1. 특정 키의 값을 보고 싶다면, get 명령어를 사용합니다. 예를 들어, "myKey"라는 키의 값을 보고 싶다면 아래와 같이 입력합니다.