검색결과 리스트
글
요즘 웬만한 곳에서 Redis 를 상당히 많이 사용합니다. 그 필요성과 성능에 대해서는 많은 자료가 있으므로 설명은 생략하도록 하겠습니다. 단지 간단하게 설치 방법과 사용법. 그리고 가장 중요한 서버 구성에 대해서 알아보도록 하겠습니다.
아마 많은 분들이 헤매는 곳도 이 서버 구성(replication & cluster) 가 아닐까 생각됩니다. 저 역시도 이 부분에 대해서 많은 고민과 해결방법을 찾는데 많은 시간을 투자했기 때문이죠.
Redis 의 설치
모든 포스팅은 Linux(CentOS) 를 기반으로 설명 드리도록 하겠습니다.
기본적인 Install
가장 먼저 http://redis.io/download 에 들어가서 redis 를 받아야 겠지요. 언제나 최신버전을 사용하시는게 좋습니다. :)
저는 현재 최신버전인 3.0.1 을 다운받도록 하겠습니다.
[und3r@sungwook redis]$ wget http://download.redis.io/releases/redis-3.0.1.tar.gz
--2015-05-27 16:01:34-- http://download.redis.io/releases/redis-3.0.1.tar.gz
Resolving download.redis.io... 109.74.203.151
Connecting to download.redis.io|109.74.203.151|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 1358190 (1.3M) [application/x-gzip]
Saving to: “redis-3.0.1.tar.gz”
100%[======================================================================>] 1,358,190 498K/s in 2.7s
2015-05-27 16:01:38 (498 KB/s) - “redis-3.0.1.tar.gz” saved [1358190/1358190]
[und3r@sungwook redis]$
[und3r@sungwook redis]$ tar xzf redis-3.0.1.tar.gz
[und3r@sungwook redis]$ cd redis-3.0.1
[und3r@sungwook redis-3.0.1]$ sudo make
[und3r@sungwook redis-3.0.1]$ sudo make install
별도 설정없이 기본적인 설치가 끝나면, 파일들이 설치가 됩니다. 서버를 실행하기 전에 먼저 설정을 하도록 합시다. 아시다시피 Redis 는 메모리 기반이기 때문에 최대 사용가능 메모리를 얼마나 할 것인지, 포트번호, 로그위치 등등 설정해 줄 것들이 있습니다. 나중에 하면 귀찮으니까, 미리 합시다.
현재 위치에 보면 utils 라는 디렉토리가 있습니다. 그 안에 install_server.sh 를 실행해 줍니다.
[und3r@sungwook utils]$ sudo ./install_server.sh
Welcome to the redis service installer
This script will help you easily set up a running redis server
Please select the redis port for this instance: [6379]
Selecting default: 6379
Please select the redis config file name [/etc/redis/6379.conf]
Selected default - /etc/redis/6379.conf
Please select the redis log file name [/var/log/redis_6379.log]
Selected default - /var/log/redis_6379.log
Please select the data directory for this instance [/var/lib/redis/6379]
Selected default - /var/lib/redis/6379
Please select the redis executable path [] /usr/local/bin/redis-server
Selected config:
Port : 6379
Config file : /etc/redis/6379.conf
Log file : /var/log/redis_6379.log
Data dir : /var/lib/redis/6379
Executable : /usr/local/bin/redis-server
Cli Executable : /usr/local/bin/redis-cli
Is this ok? Then press ENTER to go on or Ctrl-C to abort.
Copied /tmp/6379.conf => /etc/init.d/redis_6379
Installing service...
Successfully added to chkconfig!
Successfully added to runlevels 345!
Starting Redis server...
Installation successful!
[und3r@sungwook utils]$
그냥 열심히 Enter 를 눌러주면 됩니다. 중간에 저의 경우 뻘짓을 좀 해서 직접 redis executable 을 타이핑 해 주었습니다.
이제 프로세스를 확인해 봅시다.
[und3r@sungwook utils]$ ps aux | grep redis
root 15111 0.1 0.1 137436 2056 ? Ssl 16:23 0:00 /usr/local/bin/redis-server *:6379
잘 실행되고 있네요. install_server.sh 는 내부적으로 데몬을 이용해서 redis-server 를 실행합니다. 그냥 redis-server 를 실행하면 아래처럼 됩니다.
drwxr-xr-x. 2 root root 4096 May 27 16:09 ./
drwxr-xr-x. 12 root root 4096 Mar 7 18:29 ../
-rwxr-xr-x. 1 root root 4587070 May 27 16:09 redis-benchmark*
-rwxr-xr-x. 1 root root 22185 May 27 16:09 redis-check-aof*
-rwxr-xr-x. 1 root root 45403 May 27 16:09 redis-check-dump*
-rwxr-xr-x. 1 root root 4689977 May 27 16:09 redis-cli*
lrwxrwxrwx. 1 root root 12 May 27 16:09 redis-sentinel -> redis-server*
-rwxr-xr-x. 1 root root 6448297 May 27 16:09 redis-server*
[und3r@sungwook bin]$ sudo redis-server
15008:C 27 May 16:11:07.473 # Warning: no config file specified, using the default config. In order to specify a config file use redis-server /path/to/redis.conf
15008:M 27 May 16:11:07.477 # You requested maxclients of 10000 requiring at least 10032 max file descriptors.
15008:M 27 May 16:11:07.477 # Redis can't set maximum open files to 10032 because of OS error: Operation not permitted.
15008:M 27 May 16:11:07.477 # Current maximum open files is 4096. maxclients has been reduced to 4064 to compensate for low ulimit. If you need higher maxclients increase 'ulimit -n'.
_._
_.-``__ ''-._
_.-`` `. `_. ''-._ Redis 3.0.1 (00000000/0) 64 bit
.-`` .-```. ```\/ _.,_ ''-._
( ' , .-` | `, ) Running in standalone mode
|`-._`-...-` __...-.``-._|'` _.-'| Port: 6379
| `-._ `._ / _.-' | PID: 15008
`-._ `-._ `-./ _.-' _.-'
|`-._`-._ `-.__.-' _.-'_.-'|
| `-._`-._ _.-'_.-' | http://redis.io
`-._ `-._`-.__.-'_.-' _.-'
|`-._`-._ `-.__.-' _.-'_.-'|
| `-._`-._ _.-'_.-' |
`-._ `-._`-.__.-'_.-' _.-'
`-._ `-.__.-' _.-'
`-._ _.-'
`-.__.-'
15008:M 27 May 16:11:07.482 # Server started, Redis version 3.0.1
15008:M 27 May 16:11:07.484 # WARNING overcommit_memory is set to 0! Background save may fail under low memory condition. To fix this issue add 'vm.overcommit_memory = 1' to /etc/sysctl.conf and then reboot or run the command 'sysctl vm.overcommit_memory=1' for this to take effect.
15008:M 27 May 16:11:07.485 # WARNING: The TCP backlog setting of 511 cannot be enforced because /proc/sys/net/core/somaxconn is set to the lower value of 128.
15008:M 27 May 16:11:07.485 * The server is now ready to accept connections on port 6379
이후 데몬을 통해서 서버를 on / off 할때는 아래처럼 하시면 됩니다.
[und3r@sungwook utils]$ sudo /etc/init.d/redis_6379 start
Starting Redis server...
[und3r@sungwook utils]$ sudo /etc/init.d/redis_6379 stop
Stopping ...
Redis stopped
[und3r@sungwook utils]$
비밀번호 설정
기본 config 파일은 /etc/redis/6379.conf 형태로 저장됩니다. 해당 파일 수정 후 서버를 재시작 해 주면 됩니다. 비밀번호는 requirepass 부분을 수정해 주시면 됩니다.
간단한 사용
설치가 제대로 되었는지 확인해 봅시다. 기본적으로 설치하고 나면 /usr/local/bin 에 실행 파일들이 있으므로, pwd 상관없이 실행하시면 됩니다.
[und3r@sungwook utils]$ redis-cli
127.0.0.1:6379> set myKey myValue
OK
127.0.0.1:6379> get myKey
"myValue"
127.0.0.1:6379>
다음 포스팅에서는 replication 과 cluster 구성에 대해서 알아보겠습니다.
'Database > Redis' 카테고리의 다른 글
Redis 4부 - HAProxy (6) | 2015.05.29 |
---|---|
Redis 3부 - Sentinel (9) | 2015.05.29 |
Redis 2부 - Replication (4) | 2015.05.27 |
RECENT COMMENT