- 학습 이유
- 실무 프로젝트 진행중 다중 인스턴스에 대한 세션을 하나의 포인트에서 관리하기 위해.
- 자주 쿼리되는 데이터셋을 Caching 하여 성능적으로 이득을 보기 위해.
Redis의 특징
1 2 3 4 5 1 ] 애플리케이션 캐시나 빠른 응답 속도를 가진 데이터 베이스 2 ] 인메모리에 NoSQL형태의 key/value 저장소 3 ] 메모리에 데이터를 저장하기 때문에 속도, 안정성등에서 성능적으로 탁월함 (메모리를 스냅샷하여 데이터 보존 가능) 4 ] 레디스만의 다양한 Collection을 지원 5 ] 싱글 쓰레드로 실행됨으로 실행시간이 긴 명령을 수행하기에는 부적합
- Redis 설치
1 2 3 4
1 ] docker pull redis:alpine : 이미지 다운받기 2 ] docker run -d -p 6379:6379 --name="컨테이너 이름" redis:alpine : 컨데이터 띄우기 3 ] docker exec -it "컨테이너 이름" /bin/sh : redis 컨테이너 진입 4 ] redis-cli : redis 관련 명령어를 실행할 수 있는 cli 콘솔 실행
1
3 ] https://redis.com/redis-enterprise/redis-insight/ 사이트에서 GUI 설치후 실행, 추후 CLI + 자바와 연동해서 데이터 상황을 보기 위해 다운받는다.
redis-cli 에서 String set
SET 한 메세지 확인
![]()
REDIS에서 제공하는 데이터 타입 종류 (type, commands : (https://redis.io/commands/))
문법
1 2 3 4 5 6 7 8 9 10 11 12 1 ] SET [key] [value] GET : 기존에 있던 value값을 가져오고 해당 key에 value를 셋팅 2 ] SET [key] [value] XX : key 가 존재하면 value 값으로 덮어 씌운다, key가 존재 하지 않으면 null 반환 3 ] SET [key] [value] NX : key 가 존재하면 null 반환, key가 존재하지 않으면 value값을 저장 4 ] SET [key] [value] EX [second] : 해당 값을 설정한 second만큼 동안만 기록하고있는다. * 시간과 관련된 옵션 EX | PX | EXAT | PXAT | KEEPTTL 5 ] SETEX [key] [second] [value] : key 값에 second 시간 동안 value를 저장한다. 이후에 비워짐, 4] 번과 동일 6 ] SETNX [key] [value] : key 값이 존재하지 않으면 value를 저장한다. 3] 번과 동일 7 ] MSET [key] [value] [key] [value] ..... : key와 value를 한번에 여러개를 설정할 수 있다. 8 ] MGET [key] [key] .... : 한번에 여러 key값에 대응하는 value 값을 얻는다. 9 ] DEL [key] : 해당 key를 지운다. 10 ] GETRANGE [key] [start index] [end index] : 해당 key에 해당하는 value값을 설정한 index를 기준으로 잘라서 가져운다 11 ] SETRANGE [key] [index] [value] : key에 대응하는 value 값의 인덱스부터 value 값을 채워넣는다.