Published on

redis cli 자주쓰는 명령어 32가지

Authors

redis cli 를 사용하는 경우는 생각보다 많지 않아서 막상 쓰려고하면 뭐가 있었나 헷갈리곤 합니다.

자주쓰는 redis cli 명령어 32가지를 정리했습니다.

1. redis cli : 일반 명령어

Redis를 처음 사용할 때 필요한 기본 명령어들입니다.

Redis 서버의 상태를 확인하고, 기본 설정을 조정하는 데 사용됩니다.

  1. PING: 서버가 실행 중인지 확인합니다. PONG으로 응답합니다.
  2. INFO: 서버의 정보와 통계를 보여줍니다.
  3. CONFIG GET: 런타임 설정을 조회합니다.
  4. CONFIG SET: 설정을 변경합니다.
  5. KEYS: 특정 패턴과 일치하는 모든 키를 나열합니다.
  6. FLUSHDB: 현재 데이터베이스의 모든 키를 삭제합니다.
  7. FLUSHALL: 모든 데이터베이스의 모든 키를 삭제합니다.

2. redis cli 데이터 타입별 명령어

Redis는 다양한 데이터 타입을 지원합니다.

각 데이터 타입에 대한 특징과 주요 명령어를 살펴보겠습니다.

2.1. 문자열(String)

Redis는 기본적으로 모든 데이터를 문자열로 저장합니다. 하지만 그 문자열이 숫자라면? 숫자 처럼 취급해 더하거나 뺄 수 있습니다.

예를 들어, "1"이라는 문자열을 저장하면 내부적으로는 숫자 1 처럼 동작할 수 있습니다.

SET mykey "1"   # 문자열로 저장하지만...
INCR mykey        # 이 명령을 사용하면 1이 더해져 124가 됨

  1. SET: 키에 문자열 값을 할당합니다.
  2. GET: 키에 저장된 문자열 값을 검색합니다.
  3. INCR: 키의 값을 1 증가시킵니다.
  4. DECR: 키의 값을 1 감소시킵니다.

2.1.1 예시

redis> SET mykey "10"
 "OK"
 redis> INCR mykey
 (정수) 11
 redis> GET mykey
 "11"
redis> INCR mykey
 (정수) 12
redis> GET mykey
 "12"

2.2. 리스트(List)

LPUSH 명령어는 지정된 키에 저장된 리스트의 맨 앞에 값을 추가하는 명령으로, 리스트가 없으면 빈 리스트를 생성한 후 값을 넣습니다. 여러 값을 한 번에 추가할 수도 있습니다. 예를 들어, LPUSH mylist h i y는 "y", "i", "h" 순서로 리스트의 앞쪽에 추가됩니다. => ["y" "i" "h"]

  1. LPUSH: 리스트의 왼쪽에 요소를 추가합니다.
  2. RPUSH: 리스트의 오른쪽에 요소를 추가합니다.
  3. LPOP: 리스트의 왼쪽에서 요소를 제거하고 반환합니다.
  4. RPOP: 리스트의 오른쪽에서 요소를 제거하고 반환합니다.
  5. LRANGE: 리스트의 특정 범위의 요소를 조회합니다.

2.2.1 예시

redis> LPUSH mylist "world"
(integer) 1
redis> LPUSH mylist "hello"
(integer) 2
redis> LRANGE mylist 0 -1
1) "hello"
2) "world"
redis> LPUSH mylist "myname is inyeong"
(integer) 3
redis> LRANGE mylist 0 -1
1) "myname is inyeong"
2) "hello"
3) "world"
redis> LPUSH mylist h i y
(integer) 6
redis> LRANGE mylist 0 -1
1) "y"
2) "i"
3) "h"
4) "myname is inyeong"
5) "hello"
6) "world"

2.3. 셋(Set) 혹은 세트

셋은 요소를 추가/조회 할 수 있습니다. 특정 요소의 존재 여부를 확인할때 사용하기도 하며, 0과 1로 존재 여부를 확인할 수 있습니다.

  1. SADD: 셋에 하나 이상의 멤버를 추가합니다.
  2. SMEMBERS: 셋의 모든 멤버를 조회합니다.
  3. SISMEMBER: 멤버가 셋의 일부인지 확인합니다.
  4. SREM: 셋에서 하나 이상의 멤버를 제거합니다.

2.3.1 예시

redis> SADD myset "one"
(integer) 1
redis> SISMEMBER myset "one"
(integer) 1
redis> SISMEMBER myset "two"
(integer) 0
redis> SADD myset "two"
(integer) 1
redis> SISMEMBER myset "two"
(integer) 1

2.4. 해시(Hash)

해시는 필드-값 쌍의 컬렉션입니다. 각 해시는 여러 개의 필드-값 쌍을 저장할 수 있습니다 셋과 유사하지만 조금더 복잡한 데이터를 저장하는데 적합합니다.

  1. HSET: 해시에 필드와 값을 저장합니다.
  2. HGET: 해시에서 특정 필드의 값을 검색합니다.
  3. HGETALL: 해시의 모든 필드와 값 조회합니다.
  4. HDEL: 해시에서 특정 필드를 삭제합니다.
redis> HSET myhash field1 "Hello"
(integer) 1
redis> HSET myhash field2 "World"
redis> HGET myhash field1
"Hello"
redis> HGET myhash field2
"World"

이렇게 키값 field1 등을 HGET하면 개별로 나옵니다.

redis> HSET myhash field1 "Hello"
(integer) 1
redis> HSET myhash field2 "World"
(integer) 1
redis> HGETALL myhash
1) "field1"
2) "Hello"
3) "field2"
4) "World"

하지만 HGETALL 을 하게 되면, flatten(?)하게 나오게 됩니다.

2.5. 정렬된 셋(Sorted Set)

Sorted Set은 순서가 중요한 경우에 유용합니다.

  1. ZADD: 정렬된 셋에 멤버를 추가합니다.
  2. ZRANGE: 정렬된 셋에서 범위에 해당하는 범위를 가져옵니다.
  3. ZREM: 정렬된 셋에서 멤버를 제거합니다.

추가로 알아야할 것에는 WITHSCORES 이 있습니다.

2.5.1 예시

redis> ZADD myzset 1 "one"
(integer) 1
redis> ZADD myzset 1 "하나"
(integer) 1
redis> ZADD myzset 2 "two" 3 "three"
(integer) 2

redis> ZRANGE myzset 0 -1 WITHSCORES
1) "one"
2) "1"
3) "하나"
4) "1"
5) "two"
6) "2"
7) "three"
8) "3"


redis> ZRANGE myzset 0 1 WITHSCORES
1) "one"
2) "1"
3) "하나"
4) "1"

  • "하나"라는 데이터를 1이라는 동일한 순위 추가할 수 있습니다.
  • 여러개 를 넣는 것도 가능합니다.
  • ZRANGE로 순위처럼 매길수도 있습니다.

2.6. 비트 연산(Bitwise)

직접 사용할 일이 많지 않을 수도 있지만, 비트 연산을 수행할 때 유용합니다. 비트 연산은 데이터를 압축하고, 빠른 계산을 수행할 수 있겠죠.

간단한 예시로 살펴보겠습니다. AND 연산 (&): 두 비트가 모두 1일 때만 결과 비트가 1이 됩니다. (ex: 1010 & 1100 = 1000)

OR 연산 (|): 두 비트 중 하나라도 1이면 결과 비트가 1이 됩니다. (ex: 1010 | 1100 = 1110)

  1. SETBIT: 문자열 값의 특정 비트를 설정합니다.
  2. GETBIT: 문자열 값의 특정 비트를 가져옵니다.

2.6.1 예시


redis> SETBIT mykey 7 1
(integer) 0
redis> SETBIT mykey 7 0
(integer) 1
redis> GET mykey
""

주의 할 점은 SETBIT 명령어의 반환값은 이전 비트 값입니다. 여기서 (integer) 1은 비트가 이전에 1이었다는 의미입니다. 반대로, (integer) 0은 비트가 이전에 0 이었다는 것을 의미합니다.

3. redis cli 기타 명령어

자주쓰지는 않지만 알아두면 유용한 명령어입니다.

  1. EXPIRE: 키의 만료 시간을 설정합니다.
  2. TTL: 키의 남은 만료 시간을 초 단위로 반환합니다.
  3. PERSIST: 키의 만료 시간을 제거합니다.

Redis CLI를 잘 사용하면 데이터 관리와 서버 모니터링에 도움이 됩니다. Redis 사용법에 대한 더 많은 정보를 원하신다면, 공식 문서를 참고하세요. 공식문서나 실험에 대한 링크는 하단의 링크 섹션을 참고하세요.

링크

커맨드 문서

hongreat 블로그의 글을 봐주셔서 감사합니다! 하단의 버튼을 누르시면 댓글을 달거나 보실 수 있습니다.

Buy Me A Coffee