Redis로 Cache data 다루기

김현진·2020년 12월 14일
0

redis

목록 보기
1/2

1. redis 설치

실습환경은 도커환경에서 redis를 띄어져 있는 상태라고 가정하에 실습을 진행합니다.
docker가 설치가 되어 있다는 가정하에 아래 스크립트를 터미널에 입력하면 됩니다. 혹시나 docker가 설치되어 있지 않다면 redis 공식홈페이지 에서 다운로드 하면 됩니다.😀

docker run -d -p 6379:6379 redis 또는

docker run -d --name reids_study -p 6379:6379 redis

// -d: 백그라운드 환경에서 실행
// -p: port mapping
// --name: container 이름설정

2. redis-cli을 이용하여 Redis 간단 실습

docker ps // redis container id확인

docker exec -it {container id} /bin/bash

// 접속이후 

root@ce4a8669f2eb:/data# redis-cli 

redis의 간단 특징

  • 메모리 기반의 “키-값” 구조 데이터 관리 시스템이며, 모든 데이터를 메모리에 저장하고 조회하기에 빠른 Read, Write 속도를 보장하는 비 관계형 데이터베이스이다.

  • 레디스는 크게 5가지< String, Set, Sorted Set, Hash, List >의 데이터 형식을 지원한다.

  • 캐시 및 데이터 스토어에 유리.

그럼 redis-cli을 이용하여 실습.

Part 1(Strings)

127.0.0.1:6379> set name hyunjin # set을 이용하여 key, value형식으로 저장이 가능
OK # 응답값

127.0.0.1:6379> get name # get { key } 형식으로 key에 해당하는 value을 가져 올 수 있음.
"hyunjin"

127.0.0.1:6379> expire name 10 # expire을 이용하여 해당 키의 만료시간을 설정할 수 있음.(10초)
(integer) 1 

127.0.0.1:6379> ttl name  # ttl을 이용하여 해당 키의 만료시간을 알아 낼 수 있음(7초남음)
(integer) 7 

127.0.0.1:6379> ttl name # ttl을 이용하여 해당 키의 만료시간을 알아 낼 수 있음(4남음)
(integer) 4 

127.0.0.1:6379> ttl name # 만료됨.
(integer) -2 

127.0.0.1:6379> get name # 만료된 key값 호출 
(nil) 

127.0.0.1:6379> set attr handsome
OK 

127.0.0.1:6379> keys * # keys * 를 통하여 모든 key값을 조회 가능
1) "attr" 

127.0.0.1:6379> keys *a* # SQL Like문과 같이 a가 포함된 key를 조회
1) "attr"

127.0.0.1:6379> keys *c*
(empty array)

Part2(list)

127.0.0.1:6379> lpush number_lists 3 #lpush를 이용하여 list에 data 삽입
(integer) 1

127.0.0.1:6379> lrange number_lists 0 -1 # lrange명령어를 통해 값 조회가능 lrange {keyname} start stop -1은 제일 마지막 원소
1) "3"

127.0.0.1:6379> lpush number_lists 2
(integer) 2

127.0.0.1:6379> lpush number_lists 1
(integer) 3

127.0.0.1:6379> lrange number_lists 0 -1
1) "1"
2) "2"
3) "3"

127.0.0.1:6379> lrange number_lists 0 1 # 0 ~ 1번째 index조회
1) "1"
2) "2"

127.0.0.1:6379> rpush number_lists 4
(integer) 4

127.0.0.1:6379> lrange number_lists 0 -1
1) "1"
2) "2"
3) "3"
4) "4"


# lpush 왼쪽에 data를 삽입
# rpush 오른쪽에 data를 삽입

Part3(Set)

  • set은 List와 비슷하나 중복값은 허용이 안됨.
127.0.0.1:6379> sadd number_sets 1 # 데이터 삽입
(integer) 1

127.0.0.1:6379> sadd number_sets 2 # 데이터 삽입
(integer) 1

127.0.0.1:6379> smembers number_sets # 조회
1) "1"
2) "2"

127.0.0.1:6379> sadd number_sets 3 #데이터 삽입
(integer) 1

127.0.0.1:6379> sadd number_sets 3 #데이터 삽입
(integer) 0

127.0.0.1:6379> smembers number_sets
1) "1"
2) "2"
3) "3"

# set은 중복이 허용안됨

del keyname 을 통해서 해당 키를 지울수도 있음.

간단히 이정도만 알아보고 다음글은 express, redis실습(캐시)예정

profile
기록의 중요성

0개의 댓글