반응형
반응형

http://moss.tistory.com/150

들어가며

Redis 서버 설정을 위해서 작성하는 redis.conf 파일에 대해서 정리한다.
오역 및 잘못된 내용이 있을 수 있습니다. 참고 용로도만 사용해 주세요.
대상 파일: https://raw.github.com/antirez/redis/2.4.15/redis.conf

요약

기본설정

  1. daemonize (daemon으로 실행 여부 설정)
  2. pidfile (daemon 실행시 pid가 저장될 파일 경로)
  3. port (접근을 허용할 port 설정)
  4. bind (요청을 대기할 interface[랜카드] 설정)
  5. unixsocket, unixsocketperm (요청을 대기할 unix 소켓 설정)
  6. timeout (client와 connection을 끓을 idle 시간 설정)
  7. loglevel (loglevel 설정)
  8. logfile (log 파일 경로 설정)
  9. syslog-enabled (system logger 사용 여부 설정)
  10. syslog-ident (syslog에서의 identity 설정)
  11. syslog-facility (syslog facility 설정)
  12. databases (database 수 설정)

REPLICATION

  1. slaveof (master server 설정)
  2. masterauth (master server 접근 비밀번호 설정)
  3. slave-server-stale-data (master와 connection이 끊긴 경우 행동 설정)
  4. repl-ping-slave-perid (미리 정의된 서버로 PING을 날릴 주기 설정)
  5. repl-timeout (reply timeout 설정)

SECURITY

  1. requirepass (server 접근 비밀번호 설정)
  2. rename-command (command 이름 변경)

LIMITS

  1. maxclients (최대 client 허용 수 설정)
  2. maxmemory (최대 사용가능 메모리 크기 설정)
  3. maxmemory-policy (maxmemory 도달 시 행동 설정)
  4. maxmemory-samples (LRU 또는 mnimal TTL 알고리즘 샘플 수 설정)

APPEND ONLY MODE

  1. appendonly (AOF 사용여부 설정)
  2. appendfilename (AOF 파일명 설정)
  3. appendsync (fsync() 호출 모드 설정)
  4. no-appendfsync-on-rewrite (background saving 작업시 fsync() 호출 여부 설정)
  5. auto-aof-rewrite-percentage, auto-aof-rewrite-min-size (AOF file rewrite 기준 설정)

SLOW LOG

  1. slowlog-log-slower-than (slow execution 기준 설정)
  2. slowlog-max-len (최대 저장 slow log 수 설정)

VIRTUAL MEMORY

  1. vm-enabled (vm 모드 사용여부 설정)

ADVANCED CONFIG

  1. hash-max-zipmap-entries, hash-max-zipmap-value (hash encode 사용 기준 설정)
  2. list-max-ziplist-entries, list-max-ziplist-value (list encode 사용 기준 설정)
  3. set-max-intset-entries (set encode 사용 기준 설정)
  4. zset-max-ziplist-entries, zset-max-ziplist-value (sorted set encode 사용 기준 설정)
  5. activerehashing (자동 rehashing 사용 여부 설정)

기본설정

daemonize [boolean] (기본값: no)

Redis는 기본적으로 daemon으로 실행하지 않는다. 만약 Daemon으로 실행하고 싶다면 'yes'를 사용해라.
Redis는 daemon으로 실행될 때 '/var/run/redis.pid' 파일에 pid를 기록할 것이다.

예) daemonize no

pidfile [file path] (기본값: /var/run/redis.pid)

daemon으로 실행 시 pid가 기록될 파일 위치를 설정한다. 값이 설정되지 않으면 '/var/run/redis.pid'에 pid를 기록한다.

예) pidfile /ver/run/redis.pid

port [number] (기본값: 6379)

Connection을 허용할 Port를 지정한다. 기본값은 6379이다.
만약 port 값을 0으로 지정하면, Redis는 어떤 TCP socket에 대해서도 listen하지 않을 것이다.

예) port 6379

bind [ip] (기본값: 모든 인터페이스)

Redis를 bind 할 특정 interface(랜카드)를 지정할 수 있다. 만약 명시하지 않으면, 모든 interface로부터 들어오는 요청들을 listen할 것이다.

예) bind 127.0.0.1

unixsocket [path], unixsocketperm [number] (기본값: 없음)

들어오는 요청을 listen할 unix socket의 결로를 지정한다. 이 설정에는 기본 값이 없다. 따라서 값이 지정되지 않으면 unix socket에 대해서는 listen하지 않을 것이다.

예) unixscoket /tmp/redis.sock
예) unixsocketperm 755

timeout [second]

client의 idle이 N 초 동안 지속되면 connection이 닫힌다. (0으로 지정하면 connection이 계속 유지된다.)

예) timeout 0

loglevel [level]

logl evel 을 지정한다. Log level 에는 아래 4가지 중 하나를 지정할 수 있다.

loglevel설 명
debug엄청나게 많은 정보를 기록한다. 개발과 테스테 시 유용하다.
verbose유용하지 않은 많은 양의 정보를 기록한다. 하지만 'debug level'만큼 많지는 않다.
notice제품을 운영하기에 적당한 양의 로그가 남는다.
warning매우 중요하거나 심각한 내용만 남는다.

예) loglevel verbose

logfile [file path]

로그 파일을 명시한다.'stdout'로 Redis가 the standard output에 로그를 기록하도록 할 수 있다. 만약 'stdout'를 명시했으나 Redis가 daemon으로 동작한다면 로그는 /dev/null logfile stdout 로 보내질 것이다. 따라서 로그가 남지 않을 것이다.

예) logfile stdout

syslog-enabled [boolean]

system logger를 사용해서 logging 할 수 있게 한다. 단지 'yes'로 설정하고 추가적 설정을 위해서 다른 syslog parameter들을 설정할 수 있다.

예) syslog-enabled no

syslog-ident [identity]

syslog identity를 지정한다.

예) syslog-ident redis

syslog-facility [facility]

syslog facility(시설)을 지정한다. 반드시 USER 또는 LOCAL0 - LOCAL7 사이 값이 사용되어야 한다.

예) syslog-facility local0

databases [size]

dababase들의 숫자를 설정한다. 기본 dababase는 DB 0이다. 물론 connecton당 'SELECT <dbid>' 사용해서 다른 database를 선택할 수 있다. dbid는 0 과 'database 수 - 1'사이의 수이다.

예) databases 16

SNAPSHOTTING (RDB 지속성 설정)

save [seconds] [changes]

disk에 DB를 저장한다. DB에서 주어진 값인 seconds와 changes를 모두 만족시키면 DB를 저장 할 것이다.
이 설정은 여러번 설정할 수 있다.

아래는 예제를 설명한 것이다.
900초(15)분 동안에 1개 이상의 key 변경이 발생했다면 DB를 저장한다.
300초(5)분 동안에 10개 이상의 key 변경이 발생했다면 DB를 저장한다.
60초(1)분 동안에 10000개 이상의 key 변경이 발생했다면 DB를 저장한다.
실제 서비스에서는 너무 자주 동기화가 일어나게 설정하면 안된다.

주목: DB를 저장하고 싶지 않으면 모든 save 라인들을 주석 처리한다.

예) save 900 1
예) save 300 10
예) save 60 10000

rdbcompression [boolean] (기본값: yes)

.rbd database를 덤플 할 때 LZF를 사용해서 문자열 부분을 압축할지 설정한다.
압축하는 것은 대부분의 경우 좋기 때문에 기본값은 'yes'이다.
만약 child set을 저장할 때 CPU 사용을 절약하고 싶다면 'no'로 설정한다. 하지만 values 또는 keys가 압축이 가능했다면, dataset은 보다 커질 것이다.

예) rdbcompression yes

dbfilename [file path]

DB가 dump될 파일을 설정한다.

예) dbfilename dump.rdb

dir [directory path]

DB가 기록될 디렉토리를 설정한다. DB dump파일은 위의 dbfilename과 함께 최종적으로 파일이 기록될 곳이 지정된다.
Append Only File 또한 이 디렉토리에 파일을 생성할 것이다.
반드시 여기에 디렉토리를 설정해야 한다. file name에 설정하면 안 된다.

예) dir ./

REPLICATION (복제 셋 구성 설정)

slaveof [masterip] [masterport]

Master-Slave replication을 구성하기 위해서 slaveof를 사용한다. 이것은 Redis instance가 다른 Redis server의 복사본이 되게 한다.
slave에 대한 설정은 local에 위치한다. 따라서 slave에서는 내부적으로 따로 DB를 저장 하거나, 다른 port를 listen하는 등 slave만의 설정이 가능하다.

예) slaveof 127.0.0.1 6379

masterauth [master-password]

만약 master에 password가 설정되어 있다면 replication synchronization(복제 동기화) 과정이 시작되기 전에 slave의 인증이 가능하다. (이것은 "requirepass" 설정으로 가능하다). 만약 password가 틀리다면 slave의 요청은 거절될 것이다.

예) masterauth password1234 

slave-server-stale-data [boolean] (기본값: yes)

만약 slave가 master와의 connection이 끊어 졌거나, replication이 진행 중일 때는 아래의 2가지 행동을 취할 수 있다.

  1. 'yes(기본값)'로 설정한 경우, 유효하지 않은 data로 client의 요청에 계속 응답할 것이다. 만약 첫번째 동기화 중이였다면 data는 단순히 empty로 설정될 것이다.
  2. 'no'로 설정한 경우, INFO와 SLAVEOF commad(명령)을 제외한 모든 command들에 대해서 "SYNC with master in progress" error로 응답할 것이다.

예) slave-server-stale-data yes

repl-ping-slave-perid [seconds] (기본값: 10)

Salve가 내부적으로 미리 정의된 server로 지정된 시간마다 PING을 보내도록 설정한다.

예) repl-ping-slave-perid 10

repl-timeout [seconds] (기본값: 60)

'bulk transfer I/O(대량 전송 I/O) timeout'과 'master에 대한 data또는 ping response timeout'을 설정한다.

이 값은 'repl-ping-slave-period' 값 보다 항상 크도록 설정되어야 한다. 그렇지 않으면 master와 slave간 작은 traffic이 발생할 때 마다 timeout이 인지될 것이다.

예) repl-timeout 60

SECURITY (보안 설정)

requirepass [password]

client에게 다른 command들을 수행하기 전에 password를 요구하도록 설정한다. 이것은 redis-server에 접근하는 client들을 믿을 수 없는 환경일 때 유용한다.

반대로 개방적으로 사용하기 위해서는 주석 처리 되어야 한다. 왜냐하면 대부분의 사람들은 auth가 필요하지 않기 때문이다.

주의: Redis는 매우 빠르기 때문엔 좋은 환경에서는 외부 사용자가 1초 당 15만개의 password를 시도할 수 있다. 따라서 매우 강력한 password를 설정해야 한다.

예) requirepass foobared

rename-command [target-command] [new-command]

Commnad renaming

공유되는 환경에서는 위험한 command들의 이름을 변경할 수 있다. 예를 들어서 CONFIG command를 추측하기 어려운 다른 값으로 변경할 수 있다. 물론 internal-use tool로는 해당 명령어가 사용하지만, 일반적인 외부 client들에 대해서는 불가능하다.

예) rename-command CONFIG b840fc02d524045429941cc15f59e41cb7be6c52

또한 command를 공백으로 rename해서 완전히 사용 불가능하게 할 수도 있다.

예) rename-command CONFIG ""

LIMITS (접속 및 메모리 설정)

maxclients [size] (기본값: 제한 없음)

한번에 연결될 수 있는 최대 client 수를 설정한다. 기본값은 제한이 없으나, Redis process의 file descriptor의 숫자만큼 연결가능하다. 특별히 '0' 값은 제한 없음을 의미한다.
limit에 도달했을 때 새로운 connection들에 대해서는 'max number of clients reached' error를 전송한고 connection을 close 한다.

예) maxclients 128

maxmemory [bytes]

명시한 bytes의 양보다 많은 메모리를 사용하지 말아라.
memory가 limit에 도달했을 때 Redis는 선택된 eviction policy(제거 정책)(maxmemory-policy)에 따라서 key들을 제거할 것이다.

만약 Redis가 eviction policy에 의해서 key를 제거하지 못하거나 polict가 'noeviction'으로 설정되어 있다면, SET, LPUSH와 같이 메모리를 사용하는 command들에 대ㅐ서는 error를 반환하고, 오직 GET 같은 read-only command들에 대해서만 응답할 것이다.

주의: maxmoery 설정 된 instance에 slave가 존재 할 때, slave에게 data를 제공하기위해서 사용되는 output buffer의 size는  used memory count에서 제외된다. 왜냐하면 network 문제나 재동기화가 keys들이 제거된 loop에 대한 trigger를 발생시키지 않게 하기 위해서이다. loop가 발생하면 slave의 output buffer가 제거된 key들의 DEL 명령으로 가득 찰 것이다. 그리고 이것은 database가 완전히 빌 때 까지 지속된다. (좀 더 정확히 알아볼 필요가 있다. 확실히 이해가 안 됨)

간단히 말하면, 만약 slave를 가진다면, slave output buffer를 위해서 system에 약간의 free RAM이 존재시키기 위해서, maxmoery에 약간 낮은 limit를 설정하는 것이 추천된다. (하지만 policy가 'noeviction'이면 필요하지 않다.)

큰 메모리를 표시하기 위해서 아래와 같이 표기가 가능하다.

1k1,000 bytes
1kb1024 bytes
1m1,000,000 bytes
1mb1024*1024 bytes
1g1,000,000,000 bytes
1gb1012*1024*1024 bytes

예) maxmoery 1000

maxmemory-policy [policy] (기본값: volatile-lru)

MAXMEMORY POLICY: maxmemory에 도달했을 때 무엇을 삭제 할 것인지 설정한다. 아래 5개 옵션 중 하나를 선택할 수 있다.

옵션설 명
volatile-lruexpire가 설정된 key 들 중 LRU algorithm에 의해서 선택된 key를 제거한다.
allkeys-lru모든 key 들 중 LRU algorithm에 의해서 선택된 key를 제거한다.
volatile-randomexpire가 설정된 key 들 중 임의의 key를 제거한다.
allkeys-random모든 key 들 중 인의의 key를 제거한다.
volatile-ttlexpire time이 가장 적게 남은 key를 제거한다. (minor TTL)
noeviction어떤 key도 제거하지 않는다. 단지 쓰기 동작에 대해서 error를 반환한다.

예) maxmemory-policy volatile-lru

maxmemory-samples [size] (기본값: 3)

LRU와 minimal TTL algorithms(알고리즘)은 정확한(최적) 알고리즘들은 아니다. 하지만 거의 최적에 가깝다. 따라서 (메모리를 절약하기 위해서) 검사를 위한 샘플의 크기를 선택할 수 있다. 예를 들어, Redis는 기본적으로 3개의 key들은 검사하고 최근에 가장 적게 사용된 key를 선택할 것이다. 하지만 아래 예와 같이 샘플의 크기를 변경할 수 있다.

예) maxmoery-samples 3

APPEND ONLY MODE (AOF 지속성 설정)

appendonly [boolean] (기본값: no)

Redis는 기본적으로 비동기로 disk에 dataset의 dump를 남긴다. 이 방법은 crash가 발생했을 때 최근의 record를 손실되어도 문제가 없을 때 좋은 방법이다. 하지만 하나의 record도 유실되지 않기를 원한다면 append only mode를 활성화 시키는 것이 좋을 것이다.: 이 mode가 활성화 되면, Redis는 요청받는 모든 write operation들을 appendonly.aof 파일에 기록할 것이다. Redis가 재 시작될 때 memory에 dataset를 rebuild하기 위해서 이 파일을 읽을 것이다.

주목: 원한다면 async dumps와 asppend only file을 동시에 사용할 수 있다. 만약 append only mode가 활성화 되어 있다면, startup 때 dataset의 rebuild를 위해서 append only mode의 log file을 사용하고, dump.rdb 파일은 무시할 것이다.

중요: 순간적으로 write operation이 많을 때 background에서 어떻게 append log file을 rewirte 하는 방법을 확인하기 위해서 BGREWRITEAOF를 확인해라.

예) appendonly no

appendfilename [file name] (기본값: appenonly.aof)

append only file의 이름을 설정한다.
파일이 저장되는 디렉토리는 SNAPSHOTTING의 dir 속성을 사용한다.

예) appendfilename appendonly.aof

appendsync [option]

fsync() call 은 Operating System(운영체제)에게 output buffer 내에 보다 많은 데이터들을 기다리지 않고, disk에 실제로 data를 작성하라고 말한다. 어떤 OS 는 실제로 disk에 data를 기록할 것이고, 어떤 OS들은 가능한 빨리 data를 기록하려고 시도할 것이다.

Redis는 3가지의 다른 mode들을 지원한다.

옵션설 명
nofsync()를 호출하지 않는다. data의 flush를 OS에 맡긴다. 빠르다.
alwaysappend only log에 wrtie 할 때 마다 fsync()를 호출한다. 느리다, 안전하다.
everysec매 초 마다 fsync()를 호출한다. 절충안

기본값인 'everysec'은 일반적으로 속도와 데이터 안정성 사이에서 적절한 절충안이다. 이것은 당신의 관대함(?)에 달려있다. 만약 'no'로 설정한다면 OS는 적절한 타이밍에 output buffer를 flush하고 보다 좋은 성능을 낼 것이다. (그러나 만약 data loss가 발생해도 문제가 없다면 기본 persistence(영속성) mode는 snapshotting일 것이다.) 반면에 "always"를 사용하면 매우 느릴 것이다. 하지만 'everysec'보다 조금 더 안전할 것이다.

만약 확실하지않다면 'everysec'를 사용해라.

예) appendfasync everysec

no-appendfsync-on-rewrite [boolean]

AOF fsync policy를 always 또는 everysec로 설정했다면, background saving process(background 저장 또는 AOF log backgournd rewriting)은 disk에 대해서 매우 많은 I/O를 발생시킬 것이다. 따라서 어떤 Linux에서 fsync() call은 매우 긴 block를 발생시킬수도 있다.

주목: 현재 이것에 대한 fix(수정)은 없다. 다른 thread에서 fsync를 수행하더라도 동시에 발생하는 wirte call(2)이 block 될 것이다.

이 문제를 완화 시키기 위해서 BGSAVE 또는 BGREWRITEAOF가 수행중인 동안에 메인 process에서 fsync()가 호출되는 것을 막을 수 있는 no-appendfsync-on-rewirte option을 사용하는 것이 가능하다.

이것은 Redis의 영속성을 저장하는 동안에 다른 자식은 "appendfsync none"으로 설정한 것과 동일하다. 쉽게 말하면, (Linux의 기본 설정에 의해서) 최악의 경우 30초 가량의 log가 손실될 수 있다는 것이다. (이해가 잘 안됨)

이로 인해서 잠재적 문제가 있다면 이 옵션을 'yes'로 설정해라. 하지만 다른 경우에는 'no'로 남겨두는 것이 영속성의 view(?)부터 가장 안전한 선택이다.

예) no-appendfsync-on-rewrite no

auto-aof-rewrite-percentage [percente], auto-aof-rewrite-min-size [bytes]

Append only file의 Automatic rewrite(자동 재 작성)
Redis는 AOF log의크기가 명시된 퍼센트를 넘어갔을 때, 자동적으로 BGREWRITEAOF를 호출함으로서 log file를 재작성 하는 것이 가능하다. (비교 대상이 무엇인지 모르겠다.해당 Drive의 전체 크기인가?)

작동법: Redis는 최근 rewirte후에 AOF file의 크기( 또는 restart이후  rewirte가 발생하지 않았다면, startup 때 사용된 AOF의 크기)를 기억하고 있다.

이 기본 크기는 현재 크기와 비교되어진다. 만약 현재 크기가 설정된 퍼센트보다 크다면, rewrite가 동작하게된다. 또한 rewritten(재작성되는) AOF 파일의 최소 크기를 지정해 주어야 한다. 이것은 비록 퍼센트 증가가 설정 값에 도달하더라도 여전히 작은 크기일 때 AOF file이 rewriting되는 것은 피하는데 유용하다.

Automatic AOF rewirte을 비활성화 시키기 위해서는 percentage값을 0으로 설정해라.

예) auto-aof-rewrite-percentage 100
예) auto-aof-rewrite-min-size 64mb

SLOW LOG

Redis Slow Log는 설정된 실행 시간을 초과한 쿼리들의 로그를 남기는 시스템이다. 실행 시간은 talking with the client, sending the reply와 같은 I/O operation들은 포함되지 않는다. 단지 command를 수행하는데 필요한 시간(command 실행을 위해서 threaad가 block되어서 다른 request를 처리할 수 없는 시간)만이 측정된다.

2개의 parameter들를 통해서 slow log를 설정할 수 있다. : 첫번째 parameter는 Redis가 slow log를 기록하기 위해서  어떤 execution time이 느린 것인지 알려주기 위해서 microsencond로 설정한다. 두번째 parameter는 기록될 수 있는 slow log의 길이이다. 새로운 command가 log 되었을 때, 가장 오래전에 기록된 log가 제거된다. FIFO 형태인 것이다.

slowlog-log-slower-than [microseconds]

microsencod값으로 slow execution time를 설정한다. 1000000은 1초와 같다.

주의: 음수를 설정한 경우 slow log를 비활성화 시킨다. 0으로 설정한 경우 모든 command에 대해서 logging 수행된다.

예) slowlog-log-slower-than 10000

slowlog-max-len

길이에는 제한이 없다. 단지 이것은 memory를 소모하는 것은 인지하고 있어야 한다.
SLOWLOG RESET 명령으로 slow log에 의해서 사용된 memory를 반환 시킬 수 있다.

예) slowlog-max-len 128

VIRTUAL MEMORY

vm-enabled

Virtual Memory는 Redis 2.4에서 제거되었다. vm-enabled no로 설정해서 사용하지 않는다.

예) vm-enabled no

ADVANCED CONFIG

hash-max-zipmap-entries, hash-max-zipmap-value

hash들은 elements의 숫자가 설정된 entries(개수)에 도달하고 가장 큰 element가 설정된 threshold(기준치)를 초과하지 않으면 특별한 방법으로(보다 효과적인 메모리 사용법으로) encoded(인코딩)되어진다.

특별한 방법: hashtable 또는 zipmap

예) hash-max-zipmap-entries 512
예) hash-max-zipmap-value 64

list-max-ziplist-entries, list-max-ziplist-value

hash와 비슷하게 작은 list도 공간을 절약하기 위해서 특별한 방법으로 encode되어진다. 오직 설정된 값 보다 아래에 있을 때 특별한 방법이 사용되어진다.

특별한 방법: linkedlist 또는 ziplist

예) list-max-ziplist-entries 512
예) list-max-ziplist-value 64

set-max-intset-entries

Set은 오직 한 가지 경우에만 특별한 방법으로 encoded 되어진다. Set이 오직 string(문자열)로만 구성되었을 때, 64bit signed integer 범위의 radix 10의 integer로 변환된다.
아래 설정은 특별한 메모리 저장 인코딩을 사용하기 위해서 set 의 크기 제한을 설정한다. (정확한 확인 필요, 아마도 아래보다 크지 않을 때 사용하지 않을까 싶다.)

예) set-max-intset-entries 512

zset-max-ziplist-entries, zset-max-ziplist-value

hash 및 list와 비슷하게, sorted set도 많은 공간을 절약하기 위해서 특별하게 encoded되어진다. 이 Encoding은 sorted set의 element와 length가 설정치를 초과하지 않을 때 사용되어 진다.

예) zset-max-ziplist-entries 128
예) zset-max-ziplist-value 64

activerehashing

rehashing을 활성화 하면 main Redis has table(최상위 key-value hash table)을 rehashing하는 것을 돕기 위해서 CPU time의 매 100 millisecond 마다 1 millisencond를 사용한다. redis가 사용하는 hash table 구현은 lazy rehashing으로 동작한다. rehashing이 수행되는 hash table에서 많은 operation을 수행 할 수록, 보다 많은 rehashing 'steps'이 수행된다. 따라서 server가 idle 상태이면 rehashing은 결코 완료되지 않고, 약간의 메모리가 hash table에 의해서 사용되어진다.

기본값은 가능할 메모라는 free하게 만들기 위해서, main dictionary들의 rehashing을 active하는데 매 초마다 10 millisecond를 사용하는 것이다.

만약 힘든 잠재적 요구사항이나 당신의 환경에 적합하지 않아서 확신이 들지 않는다면 'activerehashing no'를 사용해라. 이 설정으로 인해서 Redis가 request들에 대해서 reply하는데 2 milliseoncds의 delay(지연)가 발생할 것이다.

만약 어려운 환경이 아니고 가장한 빠르게 메모리는 free하게 하고 싶다면 'activerehashing yes'를 사용해라.

예) activerehashing yes

반응형

'연구개발 > Redis' 카테고리의 다른 글

NoSQL - Redis 통계정보, 성능 측정  (0) 2015.12.31
redis sorted_set 사용한 실시간 순위 구하기  (0) 2014.10.27
Redis 모니터링 - Redmon  (0) 2014.03.24
[Redis Monitoring] redis-stat  (0) 2014.03.24
Redis 설치  (0) 2013.04.29
반응형

# 레디스 통계 정보


redis-cli
redis client 문서 : http://redis.io/clients

> info 명령
* Server : 실행 중인 레디스 서버의 실행 정보
* Clients : 서버와 연결된 클라이언트들의 통계 정보
* Memory : 메모리 사용 정보 및 메모리 통계 정보
* Persistence : 영구 저장소와 관련된 저장 정보
* Stats : 명령 수행과 저장된 키에 대한 통계 정보
* Replication : 현재 동작 중인 복제 정보
* CPU : CPU 사용률 통계 정보
* Keyspace : 데이터베이스별로 저장된 키 정보

1) redis_version : 실행 중인 레디스 서버의 버전 정보
2) arch_bits :  실행 중인 레디스 서버의 아키텍처 비트
3) process_id :  실행 중인 레디스 서버의 시스템 프로세스 ID
4) connected_clients :  현재 연결되어 있는 클라이언트의 커넥션 수
5) connected_slaves :  복제를 위해서 연결되는 슬레이브 노드 수
6) used_memory : 레디스 서버가 사용하는 메모리의 양(바이트 단위)
7) used_memory_human : used_memory를 사람이 읽기 쉽도록 메가바이트 또는 기가바이트 단위로 표현
8) used_memory_peak :  레디스 서버가 최대로 사용했던 메모리 크기(바이트 단위)
9) used_memory_peak_human : used_memory_peak을 사람이 읽기 쉽도록 메가바이트 또는 기가바디트 단위로 표현
10) mem_fragmentation_ratio : 레디스 서버에 저장된 데이터 중에 연속되지 않은 메모리 공간에 저장되어 있는 비율
11) role:master : 마스터-슬레이브 복제 모드에서 동작하는 모드, 단일모드로 동작할 때도 마스터로 표시된다.


[redis@sunshiny ~]$ redis-cli 
127.0.0.1:6379> info
# Server
(1)redis_version:2.8.8
redis_git_sha1:00000000
redis_git_dirty:0
redis_build_id:7b76b17a256ab168
redis_mode:standalone
os:Linux 2.6.32-431.el6.x86_64 x86_64
(2)arch_bits:64
multiplexing_api:epoll
gcc_version:4.4.7
(3)process_id:5565
run_id:f479ec44fb3ad6f4b31d182d8db4731ee6f606d4
tcp_port:6379
uptime_in_seconds:23
uptime_in_days:0
hz:10
lru_clock:4513140
config_file:

# Clients
(4)connected_clients:1
client_longest_output_list:0
client_biggest_input_buf:0
blocked_clients:0

# Memory
used_memory:1450856
used_memory_human:1.38M
used_memory_rss:7897088
used_memory_peak:1450856
used_memory_peak_human:1.38M
used_memory_lua:33792
mem_fragmentation_ratio:5.44
mem_allocator:jemalloc-3.2.0

# Persistence
loading:0
rdb_changes_since_last_save:0
rdb_bgsave_in_progress:0
rdb_last_save_time:1397022045
rdb_last_bgsave_status:ok
rdb_last_bgsave_time_sec:-1
rdb_current_bgsave_time_sec:-1
aof_enabled:0
aof_rewrite_in_progress:0
aof_rewrite_scheduled:0
aof_last_rewrite_time_sec:-1
aof_current_rewrite_time_sec:-1
aof_last_bgrewrite_status:ok
aof_last_write_status:ok

# Stats
total_connections_received:1
total_commands_processed:0
instantaneous_ops_per_sec:0
rejected_connections:0
sync_full:0
sync_partial_ok:0
sync_partial_err:0
expired_keys:0
evicted_keys:0
keyspace_hits:0
keyspace_misses:0
pubsub_channels:0
pubsub_patterns:0
latest_fork_usec:0

# Replication
role:master
(5)connected_slaves:0
master_repl_offset:0
repl_backlog_active:0
repl_backlog_size:1048576
repl_backlog_first_byte_offset:0
repl_backlog_histlen:0

# CPU
used_cpu_sys:0.03
used_cpu_user:0.04
used_cpu_sys_children:0.00
used_cpu_user_children:0.00

# Keyspace
db0:keys=3,expires=0,avg_ttl=0



# 레디스 성능 측정

benchmark 문서 : http://redis.io/topics/benchmarks

> 레디스 성능 측정 도구 옵션

Usage: redis-benchmark [-h <host>] [-p <port>] [-c <clients>] [-n <requests]> [-k <boolean>]

 -h <hostname>      Server hostname (default 127.0.0.1)
 -p <port>          Server port (default 6379)
 -s <socket>        Server socket (overrides host and port)
 -c <clients>       Number of parallel connections (default 50)
 -n <requests>      Total number of requests (default 10000)
 -d <size>          Data size of SET/GET value in bytes (default 2)
 -k <boolean>       1=keep alive 0=reconnect (default 1)
 -r <keyspacelen>   Use random keys for SET/GET/INCR, random values for SADD
  Using this option the benchmark will get/set keys
  in the form mykey_rand:000000012456 instead of constant
  keys, the <keyspacelen> argument determines the max
  number of values for the random number. For instance
  if set to 10 only rand:000000000000 - rand:000000000009
  range will be allowed.
 -P <numreq>        Pipeline <numreq> requests. Default 1 (no pipeline).
 -q                 Quiet. Just show query/sec values
 --csv              Output in CSV format
 -l                 Loop. Run the tests forever
 -t <tests>         Only run the comma separated list of tests. The test
                    names are the same as the ones produced as output.
 -I                 Idle mode. Just open N idle connections and wait.

> redis-benchmark 명령 실행

[redis@sunshiny src]$ redis-benchmark 
====== PING_INLINE ======
> 10000만 개의 명령을 처리하는 데 걸린 시간 0.13초
  10000 requests completed in 0.14 seconds
> 50개의 클라이언트 동시 연결
  50 parallel clients
> 저장 데이터의 크기 3바이트
  3 bytes payload
> 클라이언트 연결 유지 상태 정보
  keep alive: 1

89.20% <= 1 milliseconds
99.51% <= 2 milliseconds
99.78% <= 3 milliseconds
99.92% <= 4 milliseconds
99.95% <= 5 milliseconds
100.00% <= 5 milliseconds
> 초당 처리된 명령 수
70921.98 requests per second

====== PING_BULK ======
  10000 requests completed in 0.11 seconds
  50 parallel clients
  3 bytes payload
  keep alive: 1

93.88% <= 1 milliseconds
99.51% <= 2 milliseconds
100.00% <= 2 milliseconds
87719.30 requests per second

====== SET ======
  10000 requests completed in 0.12 seconds
  50 parallel clients
  3 bytes payload
  keep alive: 1

96.21% <= 1 milliseconds
100.00% <= 1 milliseconds
82644.62 requests per second

====== GET ======
  10000 requests completed in 0.11 seconds
  50 parallel clients
  3 bytes payload
  keep alive: 1

98.20% <= 1 milliseconds
100.00% <= 1 milliseconds
91743.12 requests per second

====== INCR ======
  10000 requests completed in 0.11 seconds
  50 parallel clients
  3 bytes payload
  keep alive: 1

95.78% <= 1 milliseconds
100.00% <= 1 milliseconds
90909.09 requests per second

====== LPUSH ======
  10000 requests completed in 0.11 seconds
  50 parallel clients
  3 bytes payload
  keep alive: 1

96.20% <= 1 milliseconds
100.00% <= 1 milliseconds
93457.95 requests per second

====== LPOP ======
  10000 requests completed in 0.11 seconds
  50 parallel clients
  3 bytes payload
  keep alive: 1

93.42% <= 1 milliseconds
100.00% <= 1 milliseconds
92592.59 requests per second

====== SADD ======
  10000 requests completed in 0.11 seconds
  50 parallel clients
  3 bytes payload
  keep alive: 1

92.88% <= 1 milliseconds
99.51% <= 2 milliseconds
100.00% <= 2 milliseconds
89285.71 requests per second

====== SPOP ======
  10000 requests completed in 0.11 seconds
  50 parallel clients
  3 bytes payload
  keep alive: 1

93.83% <= 1 milliseconds
99.52% <= 2 milliseconds
100.00% <= 2 milliseconds
92592.59 requests per second

====== LPUSH (needed to benchmark LRANGE) ======
  10000 requests completed in 0.12 seconds
  50 parallel clients
  3 bytes payload
  keep alive: 1

92.21% <= 1 milliseconds
100.00% <= 1 milliseconds
86956.52 requests per second

====== LRANGE_100 (first 100 elements) ======
  10000 requests completed in 0.28 seconds
  50 parallel clients
  3 bytes payload
  keep alive: 1

80.39% <= 1 milliseconds
99.51% <= 2 milliseconds
100.00% <= 2 milliseconds
35587.19 requests per second

====== LRANGE_300 (first 300 elements) ======
  10000 requests completed in 0.63 seconds
  50 parallel clients
  3 bytes payload
  keep alive: 1

2.17% <= 1 milliseconds
75.25% <= 2 milliseconds
99.69% <= 3 milliseconds
100.00% <= 3 milliseconds
15974.44 requests per second

====== LRANGE_500 (first 450 elements) ======
  10000 requests completed in 0.86 seconds
  50 parallel clients
  3 bytes payload
  keep alive: 1

0.03% <= 1 milliseconds
28.05% <= 2 milliseconds
86.40% <= 3 milliseconds
99.00% <= 4 milliseconds
100.00% <= 4 milliseconds
11668.61 requests per second

====== LRANGE_600 (first 600 elements) ======
  10000 requests completed in 1.10 seconds
  50 parallel clients
  3 bytes payload
  keep alive: 1

0.26% <= 1 milliseconds
5.61% <= 2 milliseconds
57.59% <= 3 milliseconds
86.37% <= 4 milliseconds
98.13% <= 5 milliseconds
99.91% <= 6 milliseconds
100.00% <= 6 milliseconds
9057.97 requests per second

====== MSET (10 keys) ======
  10000 requests completed in 0.20 seconds
  50 parallel clients
  3 bytes payload
  keep alive: 1

59.19% <= 1 milliseconds
100.00% <= 1 milliseconds
49019.61 requests per second


> 50바이트의 데이터를 문자열, 리스트, 셋 데이터형으로 저장하고 읽는 시간 측정

[redis@sunshiny redis-2.6.17]$ redis-benchmark -d 50 -q -t get,set,lpush,lpop,sadd,spop
SET: 52083.33 requests per second
GET: 91743.12 requests per second
LPUSH: 86956.52 requests per second
LPOP: 87719.30 requests per second
SADD: 92592.59 requests per second
SPOP: 92592.59 requests per second


> 1024바이트의 데이터를 문자열, 리스트, 셋 데이터형으로 저장하고 읽는 시간 측정

[redis@sunshiny redis-2.6.17]$ redis-benchmark -d 1024 -q -t get,set,lpush,lpop,sadd,spop
SET: 80000.00 requests per second
GET: 90909.09 requests per second
LPUSH: 96153.84 requests per second
LPOP: 81300.81 requests per second
SADD: 89285.71 requests per second
SPOP: 94339.62 requests per second


[redis@sunshiny redis-2.6.17]$ src/redis-benchmark -d 102400 -q -t get,set,lpush,lpop,sadd,spop
SET: 12919.90 requests per second
GET: 11273.96 requests per second
LPUSH: 6793.48 requests per second
LPOP: 9149.13 requests per second
SADD: 101010.10 requests per second
SPOP: 94339.62 requests per second


> 백만 개의 키를 문자열 데이터로 추가

[redis@sunshiny redis-2.6.17]$ src/redis-benchmark -t set -n 1000000 -r 100000000
====== SET ======
  1000000 requests completed in 12.41 seconds  -- 백만개의 데이터를 입력하는 데 약 13초가 소요
  50 parallel clients  -- 50개의 클라이언트 동시 연결
  3 bytes payload  -- 저장된 데이터의 크기 3바이트
  keep alive: 1  -- 클라이언트 연결 유지 상태 정보

90.42% <= 1 milliseconds
99.64% <= 2 milliseconds
99.77% <= 3 milliseconds
99.79% <= 4 milliseconds
99.83% <= 5 milliseconds
99.91% <= 6 milliseconds
99.95% <= 7 milliseconds
99.96% <= 8 milliseconds
99.97% <= 14 milliseconds
99.97% <= 20 milliseconds
99.97% <= 21 milliseconds
99.98% <= 24 milliseconds
99.98% <= 25 milliseconds
99.98% <= 26 milliseconds
99.99% <= 27 milliseconds
99.99% <= 28 milliseconds
99.99% <= 29 milliseconds
100.00% <= 34 milliseconds
100.00% <= 35 milliseconds
100.00% <= 35 milliseconds
80580.18 requests per second  -- 초당 8만개 이상의 데이터 저장

[redis@sunshiny redis-2.6.17]$


# 응답시간 측정

운영 중인 레디스가 정상적으로 작동하는지, 얼마나 빨리 응답하는지 확인하는 방법이다.
latency 옵션은 명령이 서버로 전달되고 나서부터 응답이 돌아오기까지의 시간을 측정하는 데 사용한다.
이 옵션은 사용자의 종료 명령(ctrl-c)을 전달받기 전까지 계속 실행된다.

[redis@sunshiny redis-2.6.17]$ redis-cli --latency
min: 0, max: 2, avg: 0.27 (2703 samples)^C

[redis@sunshiny redis-2.6.17]$ redis-cli --latency
min: 0, max: 7, avg: 0.26 (3680 samples)


# 주기적인 통계 정보 조회

메모리 상태, 저장된 키의 개수와 같은 서버의 통계 정보를 주기적으로 확인해야 한다면 별도의 프로그램을 개발하기보다는 간단한 리눅스 셸명령과 크론탭을 사용하는 편이 낫다.

> info 명령의 인자 목록
server : 레디스 서버의 기초적인 정보, 프로세스 ID, 포트 등을 출력
clients : 접속된 클라이언트 정보 및 통계를 출력한다.
memory :  메모리 사용량 통계 정보를 출력한다.
persistence :  영구 저장소 상태 및 통계 정보를 출력한다.
stats : 키 사용률, 명령 개수에 대한 통계 정보를 출력한다.
replication :  복제에 대한 통계 정보를 출력한다.
cpu :  CPU의 사용 정보에 대한 통계 정보를 출력한다.
keyspace :  저장된 키의 개수 정보를 출력한다.


[redis@sunshiny redis-2.6.17]$ src/redis-cli info server
# Server
redis_version:2.6.17
redis_git_sha1:00000000
redis_git_dirty:0
redis_mode:standalone
os:Linux 2.6.32-431.el6.x86_64 x86_64
arch_bits:64
multiplexing_api:epoll
gcc_version:4.4.7
process_id:3049
run_id:0da45a1adc86febf9b0b3ab8dc6c578c03ceb89d
tcp_port:6379
uptime_in_seconds:1470
uptime_in_days:0
hz:10
lru_clock:1299884

[redis@sunshiny redis-2.6.17]$ src/redis-cli info clients
# Clients
connected_clients:2
client_longest_output_list:0
client_biggest_input_buf:0
blocked_clients:0

[redis@sunshiny redis-2.6.17]$ src/redis-cli info memory
# Memory
used_memory:105421192
used_memory_human:100.54M
used_memory_rss:116494336
used_memory_peak:107854824
used_memory_peak_human:102.86M
used_memory_lua:31744
mem_fragmentation_ratio:1.11
mem_allocator:jemalloc-3.2.0

[redis@sunshiny redis-2.6.17]$ src/redis-cli info persistence
# Persistence
loading:0
rdb_changes_since_last_save:0
rdb_bgsave_in_progress:0
rdb_last_save_time:1397118519
rdb_last_bgsave_status:ok
rdb_last_bgsave_time_sec:0
rdb_current_bgsave_time_sec:-1
aof_enabled:0
aof_rewrite_in_progress:0
aof_rewrite_scheduled:0
aof_last_rewrite_time_sec:-1
aof_current_rewrite_time_sec:-1
aof_last_bgrewrite_status:ok

[redis@sunshiny redis-2.6.17]$ src/redis-cli info stats
# Stats
total_connections_received:65
total_commands_processed:1006273
instantaneous_ops_per_sec:0
rejected_connections:0
expired_keys:0
evicted_keys:0
keyspace_hits:9
keyspace_misses:0
pubsub_channels:0
pubsub_patterns:0
latest_fork_usec:1500

[redis@sunshiny redis-2.6.17]$ src/redis-cli info replication
# Replication
role:master
connected_slaves:0

[redis@sunshiny redis-2.6.17]$ src/redis-cli info cpu
# CPU
used_cpu_sys:5.13
used_cpu_user:3.47
used_cpu_sys_children:0.05
used_cpu_user_children:0.47

[redis@sunshiny redis-2.6.17]$ src/redis-cli info keyspace
# Keyspace
db0:keys=994951,expires=0,avg_ttl=0


반응형

'연구개발 > Redis' 카테고리의 다른 글

Redis 서버 설정 정리  (0) 2016.01.07
redis sorted_set 사용한 실시간 순위 구하기  (0) 2014.10.27
Redis 모니터링 - Redmon  (0) 2014.03.24
[Redis Monitoring] redis-stat  (0) 2014.03.24
Redis 설치  (0) 2013.04.29
반응형

특정유저의 score

zscore user:comment:score Nickname


특정유저의 순위

zrevrank user:comment:score Nickname


상위 1~100위까지

zrevrange user:comment:score 0 99


상위 1~100위까지 scroe 포함

zrevrange user:comment:score 0 99 withscore


특정 범위(100~200) 사용자 조회

zrevrangebyscore user:comment:count 200 100

(유일하게 큰값에서 작은값 입력)



-- 추가

ZADD key score member

ZADD seban 100 A001

ZADD seban 10 A002

ZADD seban 1 A003

ZADD seban 5 A004

 

 

-- 삭제

ZREM key member

ZREM seban A001

 

 

-- 순위

ZRANGE key start end

ZRANGE seban 0 99

 

 

-- 순위 역순

ZREVRANGE key start end

ZREVRANGE seban 0 99

 

 

-- 특정 멤버 순위

ZRANK key member

ZRANK seban A001

ZRANK seban A002

ZRANK seban A003

 

 

-- 특정 멤버 순위 역순

ZREVRANK key member

ZREVRANK seban A001

ZREVRANK seban A002

ZREVRANK seban A003

 

 

-- 특정 멤버 score 확인

ZSCORE key member

ZSCORE seban A001

 

 

-- 카운트 (min - max)

ZCOUNT key min max

ZCOUNT seban 0 100000

 

 

-- 카운트 (key)

ZCARD seban

 

 

-- 제거 (start stop 범위 제거)

ZREMRANGEBYRANK seban 0 2

 

 

-- 제거 (min max) 역순

ZREMRANGEBYSCORE seban 0 2

 



반응형

'연구개발 > Redis' 카테고리의 다른 글

Redis 서버 설정 정리  (0) 2016.01.07
NoSQL - Redis 통계정보, 성능 측정  (0) 2015.12.31
Redis 모니터링 - Redmon  (0) 2014.03.24
[Redis Monitoring] redis-stat  (0) 2014.03.24
Redis 설치  (0) 2013.04.29
반응형


Redis Redmon 설치


Redis

http://redis.io/clients


Redmon

https://github.com/steelThread/redmon



1. Ruby 설치

Redmon을 설치하려면 Ruby 1.9버전 이상이어야한다.

Yum으로 설치 시 1.8 이 설치되니 유의한다.


http://www.serveridol.com/2013/01/07/installing-ruby-on-rails-using-rvm-on-centos/


rvm 설치를 위해 필요한 몇 가지 설치.


# sudo yum groupinstall 'Development Toos'

# sudo yum install readline-devel

# sudo yum install curl


rvm 설치 및 설정


# curl -L get.rvm.io | bash -s stable

# source /etc/profile.d/rvm.sh

# rvm requirements


ruby 1.9 설치


# rvm install 1.9.3

# rvm use 1.9.3 --default

# ruby -v

 (실행 시) 1.9 가 나오면 성공


rubygems 설치


# rvm rubygems current

# gem -v



2. Redmon 설치

https://github.com/steelThread/redmon


# gem install redmon

# redmon

(실행 시) 에러 안나면 성공 - 메시지 자세히 보면 connect 에러..(no route 어쩌구)


설치 완료 끝..


Redis 설치 된 서버(예 : 192.168.10.10:6380)

Redmon 설치한 서버(예 : 192.168.10.20)


테스트 : # redmon -r redis://192.168.10.10:6380


웹사이트 열고 192.168.10.10:4567 하면 모니터링 확인



-아래는 usage

$ redmon -h
Usage: /Users/sean/codez/steelThread/redmon/vendor/ruby/1.9.1/bin/redmon (options)
    -a, --address ADDRESS            The thin bind address for the app (default: 0.0.0.0)
    -n, --namespace NAMESPACE        The root Redis namespace (default: redmon)
    -l, --lifespan MINUTES           Lifespan(in minutes) for polled data (default: 30)
    -i, --interval SECS              Poll interval in secs for the worker (default: 10)
    -p, --port PORT                  The thin bind port for the app (default: 4567)
    -r, --redis URL                  The Redis url for monitor (default: redis://127.0.0.1:6379)
    -s, --secure CREDENTIALS         Use basic auth. Colon separated credentials, eg admin:admin.
        --no-app                     Do not run the web app to present stats
        --no-worker                  Do not run a worker to collect the stats

$ redmon
>> Thin web server (v1.3.1 codename Triple Espresso)
>> Maximum connections set to 1024
>> Listening on 0.0.0.0:4567, CTRL+C to stop
[12-03-10 15:49:40] listening on http#0.0.0.0:4567

참고 : redmon -r redis://redistestmaster@192.168.10.10:6380 -n master -p 4567

redis://비밀번호@아이디:포트





Redmon 설정 및 구동


/home






반응형

'연구개발 > Redis' 카테고리의 다른 글

Redis 서버 설정 정리  (0) 2016.01.07
NoSQL - Redis 통계정보, 성능 측정  (0) 2015.12.31
redis sorted_set 사용한 실시간 순위 구하기  (0) 2014.10.27
[Redis Monitoring] redis-stat  (0) 2014.03.24
Redis 설치  (0) 2013.04.29
반응형

Redis Monitoring을 구축해보기로 하고

VMWare CentOS6.4 64bit를 설치.



Redis Monitoring Service는 현재 4가지로 나와있는 것 같다.

https://github.com/PrettySimple/redis-monitor

https://github.com/steelThread/redmon

https://github.com/simonw/django-redis-monitor

https://github.com/junegunn/redis-stat


여기서 redis-stat를 구축해보고자 한다.

ruby로 만들어져 있으므로 필히 ruby를 꼭 인스톨해줘야한다.


- ruby 설치


# yum install ruby ruby-devel ruby-irb ruby-rdoc ruby-ri

# yum install rubygem


여기서 잠시... rubygem 이 설치가 안될 때가 있다.

가능하다면 테스트 서버거나 모니터링 서버라면.. 또는 잘 모르겠다면...

# yum install *ruby*

로 전부 설치해버리는 것도 ..... 답이다..-_-;


# git clone https://github.com/junegunn/redis-stat.git


여기서 헤멨다..-_-; 리눅스를 잘 몰라서 git를 인스톨해줘야하는지도 모르고..

# yum install git


# cd redis-stat (해당 디렉토리 이동)


# gem install redis-stat

gem 인스톨 되지 않았을 시 에러나므로 필히 ruby사이트 들어가서 rubygem 설치할 것.

http://rubyforge.org/frs/?group_id=126&release_id=47112


# wget http://rubyforge.org/frs/download.php/76729/rubygems-1.8.25.tgz


이렇게 하면 설치가 끝난다.



- redis-stat 

ex)

redis-stat 1

redis-stat 1 10

redis-stat --verbose

redis-stat localhost:6380 1 10

redis-stat localhost:6380 localhost:6381 192.168.88.1 5

redis-stat localhost localhost:6360 1 10 --csv=/tmp/output.csv --verbose


vmware를 사용하면서 노트북 들고 집-회사를 오가다보니 ip가 안 맞아서 vmware ip들이 호환이 되질 않는다..-_-;

테스트는 회사에서 해봐야겠다.

로컬은 잘 된다.



웹사이트로도 결과를 확인할 수 있는데 기본포트는 63790이다.

--server 커맨드로 실행

redis-stat localhost:6380 localhost:6381 1.1.1.1:6380 --server=8080 --daemon --verbos 5


이렇게 하니까 안뜨네... 그래서

redis-stat 192.168.56.30:6380 --server --daemon 2

요런식으로 하니까 사이트 뜬다..


# --daemon 옵션을 안주면 쉘창에 로그들이 계속해서 갱신된다.


원문 : 

http://threadbuilder.wordpress.com/2013/12/16/redis-%EC%84%A4%EC%B9%98-%EC%A0%95%EB%A6%AC/

http://threadbuilder.wordpress.com/2013/12/16/redis-%EB%AA%A8%EB%8B%88%ED%84%B0%EB%A7%81-%ED%88%B4/

 

 

[출처] redis 모니터링|작성자 세바니

반응형

'연구개발 > Redis' 카테고리의 다른 글

Redis 서버 설정 정리  (0) 2016.01.07
NoSQL - Redis 통계정보, 성능 측정  (0) 2015.12.31
redis sorted_set 사용한 실시간 순위 구하기  (0) 2014.10.27
Redis 모니터링 - Redmon  (0) 2014.03.24
Redis 설치  (0) 2013.04.29
반응형

Installing Redis on CentOS 5.6


sudo su
yum install make gcc wget telnet
tar -xf redis-2.2.12.tar.gz
cd redis-2.2.12
make && make install


mkdir /etc/redis /var/lib/redis
sed -e "s/^daemonize no$/daemonize yes/" -e "s/^dir \.\//dir \/var\/lib\/redis\//" -e "s/^loglevel debug$/loglevel notice/" -e "s/^logfile stdout$/logfile \/var\/log\/redis.log/" redis.conf > /etc/redis/redis.conf




wget https://raw.github.com/gist/257849/9f1e627e0b7dbe68882fa2b7bdb1b2b263522004/redis-server
sed -i "s/usr\/local\/sbin\/redis/usr\/local\/bin\/redis/" redis-server
chmod u+x redis-server
mv redis-server /etc/init.d
/sbin/chkconfig --add redis-server
/sbin/chkconfig --level 345 redis-server on
/sbin/service redis-server start



To test your installation, run the following commands:

telnet 127.0.0.1 6379
set attitude:today "happy"
get attitude:today

[출처] Redis 설치 참조|작성자 


반응형

'연구개발 > Redis' 카테고리의 다른 글

Redis 서버 설정 정리  (0) 2016.01.07
NoSQL - Redis 통계정보, 성능 측정  (0) 2015.12.31
redis sorted_set 사용한 실시간 순위 구하기  (0) 2014.10.27
Redis 모니터링 - Redmon  (0) 2014.03.24
[Redis Monitoring] redis-stat  (0) 2014.03.24

+ Recent posts

반응형