[Redis] redis-server 설치하기 - Ubuntu

koline·2024년 8월 23일
0

Database

목록 보기
4/4

1. 패키지 업데이트

> sudo apt update
> sudo apt install lsb-release
> curl -fsSL https://packages.redis.io/gpg | sudo gpg --dearmor -o /usr/share/keyrings/redis-archive-keyring.gpg
> echo "deb [signed-by=/usr/share/keyrings/redis-archive-keyring.gpg] https://packages.redis.io/deb $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/redis.list
> sudo apt update

2. Redis 설치

> sudo apt install redis -y

# 다운로드 후 버전 확인
> redis-server --version

# 예시 출력
ubuntu@ubt2004:~$ redis-server --version
Redis server v=7.4.0 sha=00000000:0 malloc=jemalloc-5.3.0 bits=64 build=ca02b5915bf0d9c6

3. Redis 실행

# redis 자동실행 설정
> sudo systemctl enable redis-server

# redis 실행
> sudo systemctl start redis-server

여기서

Failed to start redis-server.service: Unit redis-server.service is masked.

이런 로그가 뜨면서 실행이 안될 수 있다.

이 때는

> sudo systemctl unmask redis-server.service

위 명령어로 unmask 해준 뒤 실행한다.

4. 추가 설정

/etc/redis/redis.conf 경로에 있는 redis 설정 파일을 일부 수정해준다.

보안 설정

# redis.conf
...
# requirepass foobared
...

위 라인을 찾아 주석을 제거하고 원하는 비밀번호를 입력한다.

# redis.conf
...
requirepass your_secure_password
...

원격 접근 설정

# redis.conf
...
bind 127.0.0.1 ::1
...

위 라인을 찾아 접속을 허용하고자 하는 ip 주소를 추가해준다.

# redis.conf
...
bind 0.0.0.0 ::0	# 모든 IP 허용
...
# redis.conf
...
bind 127.0.0.1 your.server.ip.address	# 특정 IP만 허용
...

지속성 설정

# redis.conf
...
# AOF 기능 사용 여부 (yes: 사용, no: 사용안함)
appendonly yes

# AOF 파일 동기화 빈도 설정 (always: 항상, everysec: 매 초마다, no: 사용안함)
appendfsync everysec
...

위 라인을 찾아서 사용하고자 하는 속성에 맞게 수정한다.

RedisRDBAOF라는 두가지 지속성 옵션을 제공한다. Redis 자체가 메모리에 데이터를 저장하는 방식이기 때문에

AOFAppend Only File의 약자로 모든 쓰기 연산을 로그에 기록하는 기능이다.

다른 방법으로는 RDB (Redis Database Backup)가 있는데, 특정 간격으로 스냅샷을 저장하는 기능이다.

메모리 설정

# redis.conf
...
maxmemory 256mb
maxmemory-policy allkeys-lru
...

위 라인을 찾아서 사용하고자 하는 속성에 맞게 수정한다.

maxmemory 속성은 Redis에게 할당할 최대 메모리 값을 설정한다.

maxmemory-policy 속성은 최대 메모리 값에 도달한 이후 데이터를 어떻게 처리할지에 대한 옵션이다.

noeviction: 새로운 쓰기 작업이 에러를 반환한다.
allkeys-lru: 가장 오랫동안 사용되지 않은 키를 삭제한다.
volatile-lru: 만료 설정이 있는 키 중에서 가장 오랫동안 사용되지 않은 키를 삭제한다.

저장 및 재시작

# 위 내용 작성 완료 후 저장 & 재시작
> sudo systemctl restart redis-server.service

5. redis-cli 접속

로컬에서 테스트

# 로컬 터미널에서 `redis-cli` 명령어로 redis 접속
> redis-cli

# 4번에서 비밀번호를 설정한 경우 비밀번호 입력
> AUTH your_secure_password

# 키-값 설정
> SET testkey "Hello, Redis!"

# 값 가져오기
> GET testkey

# 출력
"Hello, Redis!"

원격에서 테스트

# 로컬 터미널에서 `redis-cli` 명령어로 redis 접속
> redis-cli -h 원격.서버.IP.주소 -p 포트 -a 비밀번호

# 키-값 설정
> SET testkey "Hello, Redis Remote!"

# 값 가져오기
> GET testkey

# 출력
"Hello, Redis Remote!"

만약 원격에서 연결이 안된다면 방화벽 상태를 확인하자.

# 방화벽 상태 확인
> sudo ufw status

# 요청 보내는 IP에서 6379 포트 접근 허용 
> sudo ufw allow from your.client.ip.address to any port 6379
profile
개발공부를해보자

0개의 댓글

관련 채용 정보