콘텐츠로 이동

Redis CLI 및 운영 점검

Redis CLI 사용 방법과 운영 중 점검 명령을 정리함.


1. Redis CLI 사용 방법

Redis CLI는 Redis 서버와 상호작용하기 위한 명령줄 도구임.

1.1 접속

인증이 없는 localhost 테스트 환경:

redis-cli

requirepass를 사용하는 경우:

redis-cli --askpass

ACL을 사용하는 경우:

redis-cli --user app --askpass

원격 Redis에 접속하는 경우:

redis-cli -h 192.168.1.50 -p 6379 --user app --askpass

TLS Redis에 접속하는 경우:

redis-cli --tls \
  -h 192.168.1.50 \
  -p 6379 \
  --cacert /etc/redis/certs/ca.crt \
  --user app \
  --askpass

주의
redis-cli --askpass는 Redis CLI 버전에 따라 지원되지 않을 수 있음.
Rocky Linux 8 AppStream처럼 Redis 5.x 또는 일부 구버전 CLI를 사용하는 환경에서는 --askpass 대신 REDISCLI_AUTH, Redis URI, 또는 대화형 AUTH를 사용함.
인증 방식의 상세 기준은 Redis 인증 설정을 따름.

--askpass가 지원되지 않는 CLI 버전에서는 다음을 사용함.

export REDISCLI_AUTH='CHANGE_ME_TO_LONG_RANDOM_PASSWORD'
redis-cli --user app ping
unset REDISCLI_AUTH

1.2 값 설정

SET message "Hello World"

1.3 값 조회

GET message

1.4 키 삭제

DEL message

대형 key 삭제는 다음을 우선 검토함.

UNLINK message

1.5 TTL 설정

SET session:123 "data" EX 3600

TTL 확인:

TTL session:123

1.6 모든 키 조회 주의

다음 명령은 운영 Redis에서 사용하지 않는 것이 원칙임.

KEYS *

KEYS *는 전체 key space를 한 번에 스캔하여 Redis를 blocking할 수 있음.

운영 환경에서는 SCAN을 사용함.

SCAN 0 MATCH app:* COUNT 100

반복적으로 cursor가 0이 될 때까지 조회함.

1.7 주요 정보 확인

INFO server
INFO clients
INFO memory
INFO persistence
INFO stats
INFO commandstats
INFO replication

2. 운영 점검 명령

Redis 운영 중 기본 점검 명령은 다음과 같음.

2.1 서비스 상태

sudo systemctl status redis --no-pager
sudo journalctl -u redis -n 100 --no-pager

2.2 포트 및 프로세스

ps -ef | grep '[r]edis'
sudo ss -tlnp | grep ':6379'

2.3 Redis 응답

redis-cli --askpass ping

ACL 사용 시:

redis-cli --user app --askpass ping

자동화 환경:

export REDISCLI_AUTH="$REDIS_PASSWORD"
redis-cli --user app ping
unset REDISCLI_AUTH

2.4 메모리 상태

redis-cli --askpass INFO memory
redis-cli --askpass MEMORY STATS
redis-cli --askpass MEMORY DOCTOR

중요하게 볼 항목:

  • used_memory
  • used_memory_human
  • used_memory_rss
  • mem_fragmentation_ratio
  • maxmemory
  • maxmemory_policy
  • evicted_keys
  • expired_keys
  • lazyfree_pending_objects

2.5 persistence 상태

redis-cli --askpass INFO persistence

중요하게 볼 항목:

  • rdb_last_bgsave_status
  • rdb_last_bgsave_time_sec
  • rdb_last_save_time
  • aof_enabled
  • aof_last_bgrewrite_status
  • aof_last_write_status

2.6 성능 및 latency

redis-cli --askpass LATENCY DOCTOR
redis-cli --askpass SLOWLOG GET 10
redis-cli --latency -h 127.0.0.1 -p 6379

인증이 설정된 Redis에서 latency mode를 사용할 경우:

export REDISCLI_AUTH="$REDIS_PASSWORD"

redis-cli \
  --user ops \
  --latency \
  -h 127.0.0.1 \
  -p 6379

unset REDISCLI_AUTH

TLS 환경에서 latency mode를 사용할 경우:

export REDISCLI_AUTH="$REDIS_PASSWORD"

redis-cli --tls \
  --cacert /etc/redis/certs/ca.crt \
  --user ops \
  --latency \
  -h 192.168.1.50 \
  -p 6379

unset REDISCLI_AUTH

ACL 사용 시 --user와 인증 정보를 함께 사용함. --latency 모드에서도 일반 명령 실행과 동일하게 host, port, TLS, username, password 옵션을 맞춰야 함.

2.7 client connection 확인

redis-cli --askpass INFO clients
redis-cli --askpass CLIENT LIST

2.8 설정 확인

redis-cli --askpass CONFIG GET bind
redis-cli --askpass CONFIG GET protected-mode
redis-cli --askpass CONFIG GET maxmemory
redis-cli --askpass CONFIG GET maxmemory-policy
redis-cli --askpass CONFIG GET appendonly
redis-cli --askpass CONFIG GET save
redis-cli --askpass CONFIG GET lazyfree-lazy-eviction
redis-cli --askpass CONFIG GET no-appendfsync-on-rewrite