과제 : 로컬 환경에서 Redis 설치

호밀빵 굽는 쿼카·2022년 1월 11일
0

NHN Cloud 인턴

목록 보기
5/48

what? 무엇을 진행할 예정인가요?

로컬에서 vagrant 환경으로 Redis 설치를 진행합니다.

what is Redis?
Remote Dictionary Server 의 약자로 "키-값" 구조의 비정형 데이터를 저장하고 관리하기 위한 오픈 소스 기반의 비관계형 데이터베이스 관리 시스템

why? 왜 vagrant 인가요?

vagrant를 사용하면 가상화 기술을 사용자로 하여금 쓰기 쉽고, 편하게 하여 개발 환경을 손쉽게 구축할 수 있기 때문입니다.

How? 어떻게?

지금부터 로컬에서 vagrant 환경으로 Redis를 설치하는 방법에 대해서 설명합니다.

주의할 점!

  • 최신버전의 Redis 설치(Redis 버전: 6.2.6)
  • 최대한 document를 통해 설치
  • vagrant 가상환경이 준비되었다는 가정에서 진행!

⬇️⬇️⬇️⬇️⬇️


압축파일과 yum 2가지 방법으로 진행할 예정입니다.

1. 압축파일을 통한 설치

document를 보고 설치한 내용입니다.

  • 먼저, wget 명령어를 install 해줍니다
  • redis 압축파일을 wget으로 다운로드 해줍니다
  • 압축을 해제합니다
  • make 명령어를 통해 컴파일을 진행합니다.

    하지만 여기서 오류 발생

    gcc 가 설치되어 있지 않아 나는 오류입니다. gcc를 설치 > make clean해주고 재실행

    하지만 또 한번 오류가 납니다.

    make distclean 을 통해 오류를 해결합니다. 다시 make 실행하면 정상 동작합니다.


<make clean & make distclean 차이>
1) make clean 은 이전 컴파일 내용을 삭제
2) make distclean 은 파일을 받고 압축을 푼 처음상태로 만드는것

SHELL 에서 컴파일하면 make 명령어로 컴파일을 실행하는 경우가 자주 있다. 

Makefile이 있는 디렉토리에서 make 만 치면 컴파일이 실행되는 이유는?
=> make는 파일 관리 유틸리티 이기 때문

make는 파일 간의 종속관계를 파악하여 Makefile( 기술파일 )에 적힌 대로 컴파일러에 
명령하여 SHELL 명령이 순차적으로 실행될 수 있게 합니다.

make을 쓰는 장점
1. 각 파일에 대한 반복적 명령의 자동화로 인한 시간 절약
2. 프로그램의 종속 구조를 빠르게 파악 할 수 있으며 관리가 용이
3. 단순 반복 작업 및 재작성을 최소화

  • redis-server 스크립트를 실행하여 Redis 서버를 동작
    src/redis-server 명령어 입력
    주의할점 : 디렉토리가 아니기 때문에 접근 불가능!

  • Redis를 설치하면 src 디렉터리에 서버에 접속할 수 있는 클라이언트 스크립트도 함께 제공합니다. 서버를 켜두고 다른 ssh 쉘을 켜 redis-cli를 통해 동작 중인 Redis서버에 접속
    redis 파일을 들어가서 src/redis-cli 입력

  • string, hash, set key 생성해보기

  • 종료할 때는, redis-cli 에서 shutdown 입력으로 서버 정지


2. yum을 통한 설치

  • EPEL 저장소 설치
    sudo yum install epel-release

    EPEL이란?

    • EPEL (Extra Packages for Enterprise Linux) 은 Fedora Project 에서 제공되는 저장소로 각종 패키지의 최신 버전을 제공하는 커뮤니티 기반의 저장소
    • remi 저장소는 epel 저장소 의존성이 있습니다. 따라서 epel 저장소를 먼저 설치해야 remi 저장소를 설치할 수 있습니다.
  • Remi 저장소 패키지 설치
    Yum 저장소에는 REMI 저장소 패키지가 없기 때문에 rpm 파일을 따로 다운로드받아서 설치해야합니다.
    sudo yum -y install http://rpms.remirepo.net/enterprise/remi-release-7.rpm

    yum 저장소는 yum 통한 패키지 설치에 꼭 필요한 존재 => yum 저장소에서 패키지 파일을 다운로드하기때문

  • Redis 설치
    sudo yum install redis 로 redis 6.2.6 설치

  • Redis 실행
    sudo systemctl start redis

  • Redis를 자동 시작될 수 있도록 설정
    sudo systemctl enable redis

  • Redis-cli 를 통해 string, hash, set key 생성


Redis 기본 자료구조 및 명령어

  • Strings : Vinary-safe한 기본적인 key-value 구조
  • Lists : String element의 모음, 순서는 삽입된 순서를 유지하며 기본적인 자료구로 Linked List를 사용
  • Sets : 유일한 값들의 모임인 자료구조, 순서는 유지되지 않음
  • Sorted sets : Sets 자료구조에 score라는 값을 추가로 두어 해당 값을 기준으로 순서를 유지
  • Hahses : 내부에 key-value 구조를 하나더 가지는 Reids 자료구조

1. String

일반적으로 우리가 알고 있는 Key-value 형식이고 key와 value 모두 binary safe 하기때문에 어떠한 데이터의 종류도 key, value의 값이 될 수 있습니다.

> set mykey somevalue
OK
> get mykey
"somevalue"
> set counter 100
OK
# 증감도 가능
> incr counter
(integer) 101
> incr counter
(integer) 102
> incrby counter 50
(integer) 152

2. List

Linked List와 유사한 형태로 데이터가 저장되는 Redis에서 제공하는 자료구조

3. Set

순서가 보장되지않는 Strings의 집합 자료구조

 // 여러 아이템을 set에 추가
127.0.0.1:6379> sadd s1 e1 e2 e3
(integer) 3

127.0.0.1:6379> smembers s1
1) "e2"
2) "e3"
3) "e1"

// 이미 추가된 아이템을 다시 추가시도 -> 변화 없음
127.0.0.1:6379> sadd s1 e1
(integer) 0

4. Hash

value로 또 다른 key-value Map을 가지는 자료구조

> hmset user:1000 username antirez birthyear 1977 verified 1
OK
> hget user:1000 username # user:1000 key와 username 이라는 hashkey를 이용하여 Get
"antirez"
> hget user:1000 birthyear
"1977"
> hgetall user:1000
1) "username"
2) "antirez"
3) "birthyear"
4) "1977"
5) "verified"
6) "1"


참고 링크

profile
열심히 굽고 있어요🍞

0개의 댓글