로컬에서 vagrant 환경으로 Redis 설치를 진행합니다.
what is Redis?
Remote Dictionary Server 의 약자로 "키-값" 구조의 비정형 데이터를 저장하고 관리하기 위한 오픈 소스 기반의 비관계형 데이터베이스 관리 시스템
vagrant를 사용하면 가상화 기술을 사용자로 하여금 쓰기 쉽고, 편하게 하여 개발 환경을 손쉽게 구축할 수 있기 때문입니다.
지금부터 로컬에서 vagrant 환경으로 Redis를 설치하는 방법에 대해서 설명합니다.
⬇️⬇️⬇️⬇️⬇️
압축파일과 yum 2가지 방법으로 진행할 예정입니다.
document를 보고 설치한 내용입니다.
하지만 여기서 오류 발생
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
입력으로 서버 정지
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 생성
일반적으로 우리가 알고 있는 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
Linked List와 유사한 형태로 데이터가 저장되는 Redis에서 제공하는 자료구조
순서가 보장되지않는 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
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"
참고 링크