Redis Quick Start

본문에서는 Redis쌩초보를 위한 사용법을 설명한 자료입니다. 아래와 같은 내용을 소개하고자합니다.

  • Redis다운받고 설치하기
  • redis-cli로 Redis서버에 접속하기
  • 애플리케이션에서 Redis사용하기
  • Redis의 영구성에 대해 이해하기
  • 추가적인 Redis관련 툴 설치하기
  • 깊이있는 Redis공부를위해 뭘하면 되는지 알기

Redis설치하기

Redis를 설치하는데 가장 추천하는 방법은 다른 군더더기 없이 소스코드를 다운받아서 설치하는 방법이에요. 그러면 GCC컴파일러랑 libc만 있으면 되거든요. 리눅스에서 제공하는 패키지 매니저를 통해서 설치를하면 어째 최신버젼이 다운받아지지가 않더라고요. 그래서 그방법은 비추.

redis.io에 가시면 Redis를 tar로 묶어놓은 파일을 다운 받을수 있으세요. 최신버젼중에 가장 안정된 버젼은 http://download.redis.io/redis-stable.tar.gz 요 링크를 통해서 아래와같이 다운받아서 설치하시면 됩니다.

wget http://download.redis.io/redis-stable.tar.gz
tar xvzf redis-stable.tar.gz
cd redis-stable
make

이 시점에서 make test를 한번 실행해주면 설치가 잘되었는지 확인할수 있어요. make을 통해서 소스파일들이 컴파일이 되고나면 Redis가 제공하는 다양한 명령어들을 실행할수 있게 되는데요 아래와 같습니다.

  • redis-server Redis 서버
  • redis-sentinel Failover를 모니터링하는 툴
  • redis-cli 서버에 접속해서 정보를 받아올수 있는 Redis클라이언트
  • redis-benchmark Redis의 퍼포먼스를 모니터링할수 있는 툴
  • redis-check-aofredis-check-rdb (3.0 이하버젼에서는 redis-check-dump)는 데이타오류 체크

현재 여러분들은 아마도 Home디렉토리나 Download디렉토리에서 이걸 실행하셨을거에요. 그렇게되면 관리가 힘들어질거 같으니 아래의 명령어를 실행해서 Redis서버랑 클라이언트를 제대로 된 위치로 옮겨볼까요?

sudo cp src/redis-server /usr/local/bin/
sudo cp src/redis-cli /usr/local/bin/

Redis 시작하기

Redis를 실행하는 가장 손쉬운 방법은 바로 redis-server명령어를 실행하는 것입니다.

$ redis-server
83406:C 05 Aug 2020 10:01:17.983 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
83406:C 05 Aug 2020 10:01:17.983 # Redis version=6.0.6, bits=64, commit=00000000, modified=0, pid=83406, just started
83406:C 05 Aug 2020 10:01:17.983 # Warning: no config file specified, using the default config. In order to specify a config file use redis-server /path/to/redis.conf
83406:M 05 Aug 2020 10:01:17.984 * Increased maximum number of open files to 10032 (it was originally set to 256).
                _._
           _.-``__ ''-._
      _.-``    `.  `_.  ''-._           Redis 6.0.6 (00000000/0) 64 bit
  .-`` .-```.  ```\/    _.,_ ''-._
 (    '      ,       .-`  | `,    )     Running in standalone mode
 |`-._`-...-` __...-.``-._|'` _.-'|     Port: 6379
 |    `-._   `._    /     _.-'    |     PID: 83406
  `-._    `-._  `-./  _.-'    _.-'
 |`-._`-._    `-.__.-'    _.-'_.-'|
 |    `-._`-._        _.-'_.-'    |           http://redis.io
  `-._    `-._`-.__.-'_.-'    _.-'
 |`-._`-._    `-.__.-'    _.-'_.-'|
 |    `-._`-._        _.-'_.-'    |
  `-._    `-._`-.__.-'_.-'    _.-'
      `-._    `-.__.-'    _.-'
          `-._        _.-'
              `-.__.-'

83406:M 05 Aug 2020 10:01:17.985 # Server initialized
83406:M 05 Aug 2020 10:01:17.986 * Ready to accept connections

Redis가 정상작동 확인

외부 프로그램들은 TCP소켓을 이용해서 Redis와 소통합니다. 물론 프로토콜은 Redis가 특별히 정한 프로토콜을 이용하구요. 다양한 언어로 Redis클라이언트를 제공하고 있으니 프로토콜이 몬지는 크게 걱정 안하셔도 되요. 또한, Redis는 서버에 접속하여 command line명령어를 통해 손쉽게 지지고 볶고 할수 있는데 바로 그 명령어 이름이redis-cli라는 애에요.

일단 아래 명령어를 따라해보세요. 참고로 위에 띄워놓은 서버는 그대로 두고 다른 창을 열어서 방금띄운 Redis서버와 통신을 시도하는 겁니다.

$ redis-cli ping
PONG

redis-cli ping이라는 명령어를 날리면, 서버가 PONG하고 대답해요 ㅋㅋ 재밌죠. redis-cli명령어 뒤에 여러 인자를 날리면 얘가 localhost의 6379포트로 통신을 시도하게 됩니다. 서버를 기본포트가 아닌 다른 번호를 설정해서 띄웠거나, 서버가 로컬에 있지 않은 경우에는 redis-cli 명령어를 실행할때 해당 서버의 호스트나 포트번호를 명시해줄수 있어요.

redis-cli를 아무 인자없이 그냥 실행했을때는, 마치 해당 서버에 터미널로 접속한것 처럼 세션을 열고 대화형식으로 Redis명령어만 사용해서 다양한 제어를 할수있어요.

$ redis-cli
127.0.0.1:6379> ping
PONG
127.0.0.1:6379> set mykey somevalue
OK
127.0.0.1:6379> get mykey
"somevalue"

이 상태에서 Redis와 대화를 나눌수 있게 되는데요, 좀더 다양한 Redis 명령어를 연습하고 싶으신분은 Redis가 제공하는 데이타 타입 알아보기를 추천드려요.

source: https://redis.io/topics/quickstart