redis 기본 개념 및 명령어

jaycee·2024년 1월 25일

key 관련 명령어

TTL

💡 Time To Live - 특정 시간(초)이 지나면 자동으로 값을 삭제. 한 줄의 명령어만 입력해놓으면 별도 세팅 필요없이 레디스가 알아서 카운트 및 삭제 작업을 수행한다.

  • expire [key][second]
  • ttl [key]

삭제

  • del [key]
  • unlink [key]
    *비동기적인 삭제 (운영 환경에서는 특별한 이유가 없으면 del보다는 unlink를 권장)

레디스 자료형 & 명령어


이미지 출처: https://forum.redis.com/t/about-redis-commands-data-structures/13

Strings

  • set [key][value]
  • setnx [key][value]
    *값이 없는 경우만 저장 (ifnull과 유사)
  • get [key]
  • mget - multiple get
  • inc - 1추가
  • dec - 1감소

Lists

💡 순서가 있는 리스트 - 큐(대기열)나 스택 구현이 가능하다!
예) queue = lpop + rpush
예) stack = rpop + rpush


queue/stack구현 - 이미지 출처: https://jybaek.tistory.com/711

  • lpush, rpush, lpop, rpop, llen, lrange
  • lrange [key][from_range] [to_range]
    *특정 범위 key를 조회한다. [key] 0 -1 명령어로 전체 리스트 조회할 수 있다.

Sets

💡 정렬되지 않는 리스트 - 순서가 보장되지 않는다.
ex) sns follow, black list, tags

  • sadd
  • srem
  • sismember - 포함되어있는지 확인
  • smembers - 전체 데이터 조회
  • sinter - 두 개 이상의 셋에서 동일한 정보 출력
  • scard - 셋에 포함된 데이터 개수 조회

Sorted sets

💡 유니크한 값을 보장하면서, 점수(가중치)를 부여하여 정렬도 가능
ex) rate limit, 리더 보드

  • zadd
  • zrem
  • zrange
  • zcard
  • zrank / zrevrank
  • zincrby

Hashes

💡 key 하위에 field1/value1 field2/value2 식으로 여러 field-value쌍을 저장하는 데이터 구조

  • hset - hset users:1000 name lee e mail abc@cde.com age 20
  • hget - hget users:1000 email
  • hkeys - hkeys user:1000
    • users:1000 에 저장된 모든 key name들을 불러온다
  • hmget - hgetall users:1000 name email
    *요청한 해쉬 key중 지정한 field들의 value들을 반환한다.
  • hgetall - hgetall users:1000
    *요청한 해쉬 key에 저장된 모든 키와 필드를 출력
  • hdel
  • hincrby

Geospatial

  • 위도 경도 정보

Bitmap

  • 0, 1로 이미지 픽셀 정보 저장

cli

redis-cli —stat: 키갯수, 메모리 사용량, 연결된 클라이언트 수 등 통계 정보 제공

monitor: 레디스에 입력되는 모든 명령어들 출력 (개발 작업이나 운영 모니터링 시)

slowlog: 느린 명령어 로깅(slowlog get)

select [N]: 뒤에 숫자 붙여서 데이터 베이스 선택

info: 정보들

redis bash로 이동후 redis-benchmark이용하면 여러 명령어들에 관한 성능 테스트 가능

redis insight: UI를 제공하는 레디스 관리툴

profile
오늘도 하나 배웠다.

0개의 댓글