article thumbnail image
Published 2023. 6. 19. 19:15

Redis

 

Redis(Remote Dictionary Server)는 가장 인기있는 Key-value Store 중 하나이다.

 

데이터 저장소하면 보통 MySQL이나 PostgreSQL, MariaDB, Oracle 같은 RDBMS를 많이 떠올릴텐데

이러한 RDBMS와 달리 Redis는 NoSQL이다.

 

이 둘의 차이는 무엇일까? 

다음 포스팅에 자세히 적어놓았다.

https://develoyummer.tistory.com/99

 

NoSQL과 RDBMS의 차이

NoSQL과 RDBMS의 차이 DB 어플리케이션으로 RDBMS(Relational DataBase Management System)이 널리 쓰이고 있지만, 대용량 데이터 저장, 비정형 데이터 저장, 빠른 응답시간 등의 새로운 요구사항에 기존 RDBMS만으

develoyummer.tistory.com

 

 

Redis에서 Key 로 올 수 있는 자료형은 기본적으로 String이지만,

Value는 다양한 타입을 지원하며, 메모리 기반의 DB이기 때문에, Disk를 기반으로 하는 RDBMS보다 read가 빠르다.

 

value data type으로는 strings, lists, sets, hashes, sorted sets....등이 올 수 있다.

 

또한 인메모리 형식이기 때문에 HDD나 SDD를 쓰는 DB에 비해 응답성이 빠르고, 캐시로도 많이 사용된다.



 

 

 

 

Hash Map vs. Redis

key-value 기반이고,
메모리 베이스이며,
원하는 value를 원하는 표현방식으로 넣을 수 있다는 점에서 HashMap과 비슷한데 왜 Redis를 사용할까? 

 

서버가 여러대 있는 분산 서버 환경에선 Redis의 장점이 드러난다.

 

 

💡분산 환경에서 Redis의 장점

 

서버를 증설한 상황에서 동일한 해쉬맵 데이터를 참조해야 할 상황 시,

분산 환경에선 원격 프로세스간 데이터를 동기화하기 어렵다.

 

그러나 별도의 레디스 서버를 구성하고, 해당 레디스에서 값을 꺼내 쓴다면,

메모리 기반 데이터 구조의 빠른 응답성을 확보함과 동시에, 데이터 불일치 문제를 해결할 수 있다.

 

 

또한 어플리케이션을 종료하면 휘발되어 사라져버리는 HashMap과 달리, Redis는 다양한 영속성(디스크에 백업) 옵션을 제공한다.

https://redis.io/docs/management/persistence/

 

Redis persistence

How Redis writes data to disk

redis.io

 

 

 

 

 

 

 

레디스 설치법

https://redis.io/docs/getting-started/

 

Getting started with Redis

How to get up and running with Redis

redis.io

 

 

Windows에 Redis를 설치하려면 먼저 WSL2 (Linux용 Windows 하위 시스템) 를 활성화해야 한다 .

(우분투 가정 가이드)

 

공식 packages.redis.ioAPT 리포지토리에서 Redis의 최신 안정 버전을 설치할 수 있다.

 

아주 최소한의 배포(Docker 컨테이너 등)를 실행하는 경우 를 설치 하고 먼저 아래 명령어를 수행해야 할 수 있다.

sudo apt install lsb-release curl gpg

apt 인덱스에 다음 레포지토리를 추가하고, 업데이트 한 후 설치한다.

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-get update
sudo apt-get install redis

마지막으로 다음 명령어로 Redis 서버를 시작

sudo service redis-server start

 

 

레디스에 연결

Redis CLI와 연결하여 Redis 서버가 실행 중인지 테스트할 수 있다.

redis-cli 
127.0.0.1:6379> ping
PONG

 

 
 

사용법

 

📌 SET 값을 세팅

SET [keyname] [value]

 

📌GET 값을 찾아옴 

GET [keyname]

 

📌MSET 여러 키 동시에 세팅

MSET [keyname1] [value1] [keyname2] [value2]...

 

📌MGET 여러 키 동시에 찾아옴 =

MGET [keyname1] [keyname2] [keyname3]...

 

📌EXIST value의 존재 여부 확인  

EXIST [keyname1] [keyname2]

(있으면 1, 없으면 0 반환, 여러 인자를 준 경우 존재하는 갯수 반환)

 

📌 DEL 해당 키 삭제

DEL [keyname1] [keyname2]

(성공시 1, 실패시 0 반환)

 

📌EXPIRE => TTL설정(단위는 초)

EXPIRE [keyname] 5

 

 

 

 

 
레디스 공식 홈페이지 https://redis.com/
NHN의 훌륭한 레디스 입문 연재 https://meetup.toast.com/posts/224
‘가상면접 사례로 배우는 대규모 설계 기초’ 19 page http://www.yes24.com/Product/Goods/102819435

https://www.youtube.com/watch?v=sqVByJ5tbNA 

 
복사했습니다!