728x90
Redis란?
Remote Dictionary Server의 약자로 외부에서 사용 가능한 Key-Value 쌍의 해시 맵 형태의 서버라고 생각할 수 있다. 별도의 쿼리 없이 Key를 통해 빠르게 결과를 가져올 수 있다.
인 메모리 기반의 시스템이므로 재부팅 시 데이터가 소멸하고, 이로 인해 영구적인 저장용 시스템으로 활용할 수 없다는 문제가 있다. 만약 영구 저장이 필요하다면 해당 데이터를 DB에 저장해 두고, 재부팅 시 DB로부터 데이터를 받아야 한다.
- 영속성을 지원하는 인 메모리 데이터 저장소
- 다양한 자료 구조를 지원함.
- 싱글 스레드 방식으로 인해 연산을 원자적으로 수행이 가능함.
- 읽기 성능 증대를 위한 서버 측 리플리케이션을 지원
- 쓰기 성능 증대를 위한 클라이언트 측 샤딩 지원
- 다양한 서비스에서 사용되며 검증된 기술
Redis 사용 이유
서비스를 사용자가 늘어나면 DB에 무리가 가기 시작한다. DB는 데이터를 물리 디스크에 직접 쓰기 때문에 서버에 문제가 발생해도 데이터가 손실되지는 않지만, 매 트랜잭션마다 디스크에 접근해야하므로 부하가 많아지면 성능이 떨어진다. 그래서 DB를 스케일 인 또는 스케일 아웃하는 방식 외에도 캐시 서버를 검토하게 된다.
더보기
메세지 분배 발송 솔루션 Redis ➡️
대량의 메시지를 분배 및 발송 할 때, 저장된 대량의 메시지를 조회 하는 시간을 줄이기 위해 사용
Docker로 Redis 설치
1. 이미지 내려받기
docker pull redis
2. 이미지 확인
docker images
3. 컨테이너 생성 및 실행
docker run --name redis -d redis
4. redis cli 접속
docker exec -it redis redis-cli
Redis 기본 명령어
1. 저장
set key value
set [key 이름] [value 값]을 통해 데이터를 저장
2. 조회
keys *
# 결과
# 1) "key"
keys [패턴]을 통해 여러 키 조회
keys k*를 통해서 key라는 키 조회
get key
# 결과
# "value"
get [key 이름]을 통해 해당 key에 대한 value를 조회
3. 삭제
del key
del [key 이름]을 통해 해당 key-value 삭제
Key 수정
rename key newKey
rename [현재 key 이름] [새로운 key 이름]을 통해 key의 이름 변경
value를 변경하기 위해서는 set명령어를 이용
728x90