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://www.youtube.com/watch?v=sqVByJ5tbNA
'etc' 카테고리의 다른 글
Github Actions를 통한 배포 자동화 (0) | 2023.07.28 |
---|---|
[프로젝트] redis 적용 (0) | 2023.06.23 |
NoSQL과 RDBMS의 차이 (0) | 2023.06.21 |
[mustache]spring boot 프로젝트에 mustache 템플릿 엔진 적용해보기 (0) | 2023.04.10 |
development 기초 (0) | 2022.08.24 |