# Redis란?
- NOSQL DB이다.
- REDIS(REmote Dictionary Server)는 메모리 기반의 “키-값” 구조 데이터 관리 시스템이며, 모든 데이터를 메모리에 저장하고 조회하기에 빠른 Read, Write 속도를 보장하는 비 관계형 데이터베이스이다.
- 레디스는 크게 5가지< String, Set, Sorted Set, Hash, List >의 데이터 형식을 지원
- 처리 속도가 빠르다.(데이터가 메모리와 디스크에 저장되므로 빠르다. ) : 영구적
- 주로 대형 포털들에서 Static page, 또는 검색 결과 등을 캐쉬하는데 많이 사용
- 읽기 성능 증대를 위한 서버 측 복제를 지원한다.
- 쓰기 성능 증대를 위한 클라이언트 측 샤딩(Sharding)을 지원한다.
# 서버측 복제란?
- Redis가 실행중인 서버가 충돌하는 경우 장애 조치 처리와 함께 더 높은 읽기 성능을 지원하기 위해 슬레이브가 마스터에 연결하고 전체 데이터베이스의 초기 복사본을 받는 마스터 / 슬레이브 복제를 지원한다. 마스터에서 쓰기가 수행되면 슬레이브 데이터 세트를 실시간으로 업데이트하기 위해 연결된 모든 슬레이브로 전송된다.)
# 샤딩(Sharding)이란?
- 파티셔닝(Partitionong)과 동일하다. 같은 테이블 스키마를 가진 데이터를 다수의 데이터베이스에 분산하여 저장하는 방법을 의미한다.
# Nosql이란?
- RDBMS는 보통 “관계형 데이터베이스”라고 하며 반면 NOSQL은 “비관계형 데이터베이스”이다. 보통 NOSQL은 키-밸류나 컬럼, 문서 형식의 데이터 모델을 이용한다.
- RDBMS가 아닌 다른 형태로 데이터를 저장하는 기술이라고 생각하면 된다.
- NOSQL: Not Only SQL, 비관계형 데이터베이스
- 그렇다면 왜, 언제 NOSQL을 쓰는 걸까? 아주 많은 양의 데이터를 효율적으로 처리가 필요할 때, 데이터의 분산처리, 빠른 쓰기 및 데이터의 안정성이 필요할 때 사용한다. 특정 서버에 장애가 발생했을 때에도 데이터 유실이나 서비스 중지가 없는 형태의 구조이기 때문에, NOSQL을 사용한다.
1) 키-밸류 스토리지형 키-밸류형: Redis, memcached, Oracle, Coherence,
2) 열 지향 와이드 컬럼 스토어: Cassandra, HBASE, Cloud Database
3) 문서형: MongoDB, Couchbase, MarkLogic, PostgreSQL, MySQL, DynamicDB MS-DocumentDB
# MongoDB란?
- 몽고DB는 도큐먼트 지향 데이터 베이스이다.
- bson데이터 구조로 저장한다.
- 문서를 기본 저장 단위로 이용하면서 내장 문서와 배열을 이용해서 복잡한 계층구조를 하나의 레코드(열)로 표현한다.
- 스키마가 없다.
- 필드 추가 제거는 자유로우며 필요할 때 마다 자유자재로 변경 가능하다.
- RDBMS보다 몇십, 몇백배 빠른 고성능이다.
- 조인과 트랜잭션을 지원하지 않으며 여러 제약조건에 대한 처리도 없다.(버전에 따라 상이함)
# Redis 설치하기
1. linux 환경에서 설치
공식 가이드를 보며 설치하면 된다. 최신 버젼을 받아서 아래 명령어를 통해 설치하자.
### wget 대신 다운로드 페이지에서 최신 버젼을 직접 받아도 된다
$ wget http://download.redis.io/redis-stable.tar.gz
$ tar xvzf redis-stable.tar.gz
$ cd redis-stable
$ make
make를 통한 컴파일이 끝나면 make test 명령을 통해 수행이 잘되었는지 확인할 수 있다. 이제 아래 명령을 통해서 redis를 설치 하자.
$ sudo make install
공식 페이지 : https://redis.io/download
2. windows 환경에서 설치
redis가 공식적으로 windows를 지원하지는 않지만 누군가가 windows에서 (64비트 환경에서만) 쓸 수 있도록 작업을 해 놓았다. 이 곳에서 제공하는 최신 버전의 설치 파일(현재 버젼 3.2.100)을 받아서 실행하면 된다.
해당 사이트 접속 후, Release page에서, 가장 최신 버전 클릭 후, msi 파일 설치
페이지 : https://github.com/microsoftarchive/redis
3. 간단히 설치 확인 및 사용
다음 명령을 실행하면 redis 서버 프로세스가 실행된다. 기본 설정으로 localhost(127.0.0.1) 호스트에 6379 포트에서 실행될 것이다.
$ redis-server
redis가 잘 작동하는 지 확인하기 위해 또 하나의 터미널을 열어서 CLI를 이용해서 redis 서버가 응답하는지 확인해보자.
$ redis-cli
redis 127.0.0.1:6379> ping
PONG이라는 귀여운 응답이 나온다면 서버가 잘 작동하고 있는 것이다. 이제 간단하게 데이터를 입력하고 확인해보자.
redis 127.0.0.1:6379> set mykey somevalue
### OK
redis 127.0.0.1:6379> get mykey
### somevalue
이제 redis 프로세스를 터미널에 띄워 놓지 않고 백그라운드 서비스로 실행하기 위해서 기존 redis-server를 실행시킨 터미널에서 ctrl+c를 눌러 중지시키고, 다음 명령을 통해 서비스를 설치하고 실행한다.
$ redis-server --service-install
$ redis-server --service-start ### 종료는 --service-stop
서비스를 올린 후에 다시 redis-cli를 통해 redis 서버가 잘 응답하는지, 데이터 입력 및 출력이 잘 되는지 확인해보자. 기본 설치는 끝났고 이제 다음 글을 보며 celery와 함께 비동기 작업 큐를 만들어보자.
# 최종 설치 및 동작 확인
D:\>netstat -an|findstr 6379
TCP 127.0.0.1:6379 0.0.0.0:0 LISTENING
D:\>redis-cli
127.0.0.1:6379> ping
PONG
127.0.0.1:6379> set key value
OK
127.0.0.1:6379> get key
"value"
127.0.0.1:6379>
# 출처
https://dgkim5360.tistory.com/entry/install-redis-for-linux-or-windows [개발새발로그]
https://goni9071.tistory.com/473
https://medium.com/@jyejye9201/%EB%A0%88%EB%94%94%EC%8A%A4-redis-%EB%9E%80-%EB%AC%B4%EC%97%87%EC%9D%B8%EA%B0%80-2b7af75fa818
최근댓글