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_memoryused_memory_humanused_memory_rssmem_fragmentation_ratiomaxmemorymaxmemory_policyevicted_keysexpired_keyslazyfree_pending_objects
2.5 persistence 상태¶
redis-cli --askpass INFO persistence
중요하게 볼 항목:
rdb_last_bgsave_statusrdb_last_bgsave_time_secrdb_last_save_timeaof_enabledaof_last_bgrewrite_statusaof_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