DB

Redis 기본 명령어

Raconer 2023. 8. 18. 14:59
728x90

https://redis.io/commands/mget/

  1. Strings (문자열):
    • 저장 형태: 단일 값으로 텍스트나 숫자를 저장합니다.
    • 설명: 간단한 데이터 값을 저장하는 데 사용됩니다.
    • 예시: "username" -> "john_doe"
    • 명령어 리스트
      • 명령어 설명 사용 예제
        SET 주어진 키에 값을 저장합니다. SET username john_doe EX 3600
        GET 주어진 키의 값을 가져옵니다. GET username
        DEL 주어진 키들을 삭제합니다. DEL username
        INCR 주어진 키의 값을 1 증가시킵니다. INCR counter
        DECR 주어진 키의 값을 1 감소시킵니다. DECR counter
        APPEND 주어진 키의 값에 값을 추가합니다. APPEND message "Hello, "
        STRLEN 주어진 키의 값의 길이를 반환합니다. STRLEN message
  2. JSON:
    • 저장 형태: 문자열로 JSON 데이터를 저장하고 필요할 때 파싱하여 사용합니다.
    • 설명: 복잡한 데이터 구조를 표현하기 위해 사용됩니다.
    • 예시: "user:1" -> "{"name":"John Doe","age":30,"email":"john@example.com"}"
    • 명령어 리스트
      • 명령어 설명 사용 예제
        JSON.SET 주어진 키와 경로에 JSON 값을 저장합니다. JSON.SET user:123:profile . '{"name": "John Doe", "age": 30, "email": "john@example.com"}'
        JSON.GET 주어진 키에 저장된 JSON 값을 가져옵니다. JSON.GET user:123:profile
        JSON.DEL 주어진 경로에 있는 JSON 필드를 삭제합니다. JSON.DEL user:123:profile .email
        JSON.TYPE 주어진 경로에 있는 JSON 필드의 타입을 반환합니다. JSON.TYPE user:123:profile .age
  3. Lists (리스트):
    • 저장 형태: 연결 리스트로 여러 개의 요소를 순서대로 저장합니다.
    • 설명: 순서가 중요한 데이터를 저장하고 관리합니다.
    • 예시: "recent_orders" -> ["order:123", "order:124", "order:125"]
    • 명령어 리스트
      • 명령어 설명 사용 예제
        LPUSH 주어진 키의 List의 왼쪽에 값을 추가합니다. LPUSH recent_orders order:125
        RPUSH 주어진 키의 List의 오른쪽에 값을 추가합니다. RPUSH recent_orders order:126
        LPOP 주어진 키의 List의 왼쪽에서 값을 가져오고 제거합니다. LPOP recent_orders
        RPOP 주어진 키의 List의 오른쪽에서 값을 가져오고 제거합니다. RPOP recent_orders
        LRANGE 주어진 키의 List에서 지정한 범위의 값들을 가져옵니다. LRANGE recent_orders 0 2
        LLEN 주어진 키의 List의 길이를 반환합니다. LLEN recent_orders
  4. Sets (집합):
    • 저장 형태: 해시 테이블로 중복 없이 고유한 값들을 저장합니다.
    • 설명: 고유한 값을 저장하고 집합 연산을 지원합니다.
    • 예시: "followers:123" -> {"user:456", "user:789", "user:101"}
    • 명령어 리스트
      • 명령어 설명 사용 예제
        SADD 주어진 키의 Set에 멤버를 추가합니다. SADD followers:123 user:456 user:789
        SMEMBERS 주어진 키의 Set에 있는 모든 멤버를 반환합니다. SMEMBERS followers:123
        SISMEMBER 주어진 키의 Set에 특정 멤버가 있는지 확인합니다. SISMEMBER followers:123 user:456
        SREM 주어진 키의 Set에서 멤버를 제거합니다. SREM followers:123 user:789
        SCARD 주어진 키의 Set의 멤버 개수를 반환합니다. SCARD followers:123
        SUNION 주어진 여러 개의 Set을 합친 결과를 반환합니다. SUNION set1 set2
  5. Hashes (해시):
    • 저장 형태: 해시 테이블로 필드-값 쌍을 저장합니다.
    • 설명: 필드와 값의 쌍으로 복잡한 데이터를 저장하고 관리합니다.
    • 예시: "user:123" -> {"username": "alice", "email": "alice@example.com"}
    • 명령어 리스트
      • 명령어 설명 사용 예제
        HSET 주어진 키의 Hash에 필드와 값을 설정합니다. HSET user:123:profile name "John Doe"
        HGET 주어진 키의 Hash에서 지정한 필드의 값을 가져옵니다. HGET user:123:profile name
        HMSET 주어진 키의 Hash에 여러 개의 필드와 값을 설정합니다. HMSET user:123:profile age 30 email "john@example.com"
        HMGET 주어진 키의 Hash에서 여러 개의 필드의 값을 가져옵니다. HMGET user:123:profile age email
        HDEL 주어진 키의 Hash에서 필드를 삭제합니다. HDEL user:123:profile email
        HKEYS 주어진 키의 Hash에 있는 모든 필드를 반환합니다. HKEYS user:123:profile
        HVALS 주어진 키의 Hash에 있는 모든 값들을 반환합니다. HVALS user:123:profile
  1. Sorted sets (정렬된 집합):
    • 저장 형태: 스코어와 값의 쌍으로 정렬된 순서대로 저장합니다.
    • 설명: 값과 함께 순서 정보를 저장하며, 스코어 순으로 정렬됩니다.
    • 예시: "leaderboard" -> {"player2": 1300, "player1": 1500, "player3": 1700}
    • 명령어 리스트
      • 명령어 설명 사용 예제
        ZADD 주어진 키의 Sorted Set에 멤버와 점수를 추가합니다. ZADD leaderboard 1500 "player1"
        ZRANGE 주어진 키의 Sorted Set에서 지정한 범위의 멤버를 가져옵니다. ZRANGE leaderboard 0 2 WITHSCORES
        ZREVRANGE 주어진 키의 Sorted Set에서 역순으로 지정한 범위의 멤버를 가져옵니다. ZREVRANGE leaderboard 0 2 WITHSCORES
        ZSCORE 주어진 키의 Sorted Set에서 특정 멤버의 점수를 가져옵니다. ZSCORE leaderboard player1
        ZINCRBY 주어진 키의 Sorted Set에서 특정 멤버의 점수를 증가시킵니다. ZINCRBY leaderboard 100 player1
        ZREM 주어진 키의 Sorted Set에서 멤버를 제거합니다. ZREM leaderboard player1
        ZCARD 주어진 키의 Sorted Set의 멤버 개수를 반환합니다. ZCARD leaderboard
  2. Streams (스트림):
    • 저장 형태: 시간순으로 이벤트를 저장하는 로그 구조입니다.
    • 설명: 시간순으로 이벤트를 기록하고 처리하는 데 사용됩니다.
    • 예시: "activity_log" -> {"timestamp1": {"event": "login", "user": "user1"}, "timestamp2": {"event": "purchase", "user": "user2"}}
    • 명령어 리스트
      • 명령어 설명 사용 예제
        XADD 주어진 스트림에 엔트리를 추가합니다. XADD activity_log MAXLEN ~ 100 * event login user user1
        XREAD 주어진 스트림에서 엔트리를 읽습니다. XREAD COUNT 10 STREAMS activity_log 0
        XGROUP CREATE 주어진 스트림에 새로운 컨슈머 그룹을 생성합니다. XGROUP CREATE activity_log mygroup $
        XREADGROUP GROUP 컨슈머 그룹에서 스트림에서 엔트리를 읽습니다. XREADGROUP GROUP mygroup myconsumer COUNT 1 STREAMS activity_log >
        XACK 컨슈머 그룹에서 처리한 엔트리를 확인합니다. XACK activity_log mygroup 1629316259605-0
        XDEL 주어진 스트림에서 엔트리를 삭제합니다. XDEL activity_log 1629316259605-0
        XINFO STREAM 주어진 스트림의 정보를 반환합니다. XINFO STREAM activity_log
  3. Geospatial (지리공간):
    • 저장 형태: 위치 정보를 저장하고 조회할 수 있는 데이터 타입입니다.
    • 설명: 지리 위치 정보를 저장하고 검색하는 데 사용됩니다.
    • 예시: "locations" -> {"New York": (40.7128, -74.0060), "Tokyo": (35.6895, 139.6917)}
    • 명령어 리스트
      • 명령어 설명 사용 예제
        GEOADD 주어진 키의 Geospatial 데이터에 위치 정보를 추가합니다. GEOADD locations -74.0060 40.7128 "New York"
        GEORADIUS 주어진 중심점에서 지정한 반경 내의 위치를 검색합니다. GEORADIUS locations -74.0060 40.7128 100 km WITHCOORD WITHDIST COUNT 10
        GEOHASH 주어진 멤버의 Geohash 값을 가져옵니다. GEOHASH locations "New York"
        GEODIST 두 멤버 사이의 거리를 계산합니다. GEODIST locations "New York" "Tokyo" km
        GEORADIUSBYMEMBER 주어진 멤버를 중심으로 지정한 반경 내의 위치를 검색합니다. GEORADIUSBYMEMBER locations "New York" 100 km WITHCOORD WITHDIST COUNT 10
        GEOPOS 주어진 멤버의 위치 좌표를 가져옵니다. GEOPOS locations "New York"
  4. Bitmaps (비트맵):
    • 저장 형태: 비트 배열로 이진 데이터를 저장합니다.
    • 설명: 이진 데이터를 저장하고 비트 연산을 지원합니다.
    • 예시: "user:123:preferences" -> "10010100..."
    • 명령어 리스트
      • 명령어 설명 사용 예제
        SETBIT 주어진 키의 비트열에서 지정한 오프셋의 비트를 설정합니다. SETBIT user:123:preferences 5 1
        GETBIT 주어진 키의 비트열에서 지정한 오프셋의 비트 값을 가져옵니다. GETBIT user:123:preferences 5
        BITCOUNT 주어진 키의 비트열에서 설정된 비트의 개수를 반환합니다. BITCOUNT user:123:preferences
        BITOP 주어진 비트열들 간의 비트 연산 결과를 저장합니다. BITOP OR user:123:merged_prefs user:123:preferences user:123:theme_prefs
  5. Bitfields (비트필드):
    • 저장 형태: 필드마다 비트를 사용하여 데이터를 저장합니다.
    • 설명: 여러 가지 정보를 비트 단위로 저장하고 관리합니다.
    • 예시: "user:123:permissions" -> {"read": 1, "write": 0, "execute": 1}
    • 명령어 리스트
      • 명령어 설명 사용 예제
        SETBIT 주어진 키의 비트열에서 지정한 오프셋의 비트를 설정합니다. SETBIT user:123:permissions read 1
        GETBIT 주어진 키의 비트열에서 지정한 오프셋의 비트 값을 가져옵니다. GETBIT user:123:permissions write
        BITFIELD 주어진 키의 비트열에서 비트를 읽거나 수정합니다. BITFIELD user:123:preferences GET u8 5 SET u8 10 1
  6. Probabilistic (확률론적 자료구조):
    • 저장 형태: 확률론적 자료구조를 사용하여 대량의 고유한 값을 추정합니다.
    • 설명: 대량의 고유한 값을 추정하는 데 사용됩니다.
    • 예시: "unique_users" -> HyperLogLog 데이터
    • 명령어 리스트
      • 명령어 설명 사용 예제
        PFADD HyperLogLog에 요소를 추가합니다. PFADD unique_users user1 user2 user3
        PFCOUNT 하나 이상의 HyperLogLog의 근사 집합의 개수를 세어 반환합니다. PFCOUNT unique_users
        PFMERGE 여러 개의 HyperLogLog을 하나로 병합합니다. PFMERGE merged_unique_users unique_users1 unique_users2
  7. Time series (시계열):
    • 저장 형태: 시간별로 데이터를 저장하고 조회합니다.
    • 설명: 시간 순으로 데이터를 저장하고 분석하는 데 사용됩니다.
    • 예시: "temperature" -> {"2023-08-17T08:00": 25.5, "2023-08-17T12:00": 28.2}
    • 명령어 리스트
      • 명령어 설명 사용 예제
        TS.CREATE 주어진 키로 Time Series를 생성합니다. TS.CREATE temperature
        TS.ADD 주어진 Time Series에 타임스탬프와 값을 추가합니다. TS.ADD temperature 1629316259605 25.5
        TS.RANGE 주어진 Time Series의 범위 내 데이터를 가져옵니다. TS.RANGE temperature 1629316000000 1629318000000
        TS.MRANGE 여러 Time Series의 데이터를 범위와 필터로 가져옵니다. TS.MRANGE 1629316000000 1629318000000 FILTER temperature=25.5
        TS.INFO 주어진 Time Series의 정보를 반환합니다. TS.INFO temperature
728x90

'DB' 카테고리의 다른 글

Index Hint  (0) 2024.01.20
Mysql Trigger  (0) 2023.12.06
DB 테스트 용 데이터 대량 만들기_TIP  (0) 2023.08.03
데드락  (0) 2023.07.05
MySql DB 엔진  (0) 2023.07.03