caching
queuing
event processing
1. String
- byte sequence 저장
- 문자열 매핑에 주로 사용됩니다. (key, value 모두 문자열)
Data Structure
- Text
- Serialized object
- Binary array(image, video, audio)
Usage
- cache
- counters
- bitwise operation
더보기
SET bike:1 Deimos # key(namespace:id) - value
GET bike:1 # Deimos
2. JSON
- Syntax: JSONPath
Usage
- API Response (cached)
더보기
JSON.SET user:1001 $ '{"name": "John Doe", "email": "john.doe@example.com", "age": 30}'
JSON.GET user:1001 $.name # John Doe
3. Lists
- String 타입을 값으로 가지는 linked list
Data Structure
- Stack
- Queue
더보기
> LPUSH bikes:repairs bike:1
> LPUSH bikes:repairs bike:2
> RPOP bikes:repairs # "bike:1"
> RPOP bikes:repairs # "bike:2"
> LLEN bikes:repairs # 0
> LPUSH bikes:repairs bike:1
> LPUSH bikes:repairs bike:2
> LMOVE bikes:repairs bikes:finished LEFT LEFT # 왼쪽 끝의 것을 pop 해서 왼쪽에 push
> LRANGE bikes:repairs 0 -1 # "bike:1"
> LRANGE bikes:finished 0 -1 # "bike:2"
> RPUSH bikes:repairs bike:1 bike:2 bike:3 bike:4 bike:5
> LTRIM bikes:repairs 0 2 # 왼쪽으로부터 0~1 삭제
> LRANGE bikes:repairs 0 -1
1) "bike:1"
2) "bike:2"
3) "bike:3"
4. Set
- 유일한 요소로 구성된 데이터 타입
- 값 타입: String
- 순서 없음
Usage
- Index
Code
더보기
> SADD bikes:racing:france bike:1 # 1
> SADD bikes:racing:france bike:1 # 0
> SADD bikes:racing:france bike:2 bike:3 # 2
> SADD bikes:racing:usa bike:1 bike:4 # 2
> SADD bikes:racing:france bike:100
> SREM bikes:racing:france bike:100 # 1
> SMEMBERS bikes:racing:france # bike:1 bike:2 bike:3
> SISMEMBER bikes:racing:usa bike:1 # 1
> SISMEMBER bikes:racing:usa bike:2 # 0
> SINTER bikes:racing:france bikes:racing:usa # "bike:1"
> SDIFF bikes:racing:france bikes:racing:usa # bike:3, bike:2
> SUNION bikes:racing:france bikes:racing:usa bikes:racing:italy # bike:1 bike:2 bike:3 bike:4
> SCARD bikes:racing:france # 3
5. Hash
- 객체 표현
- field-value의 쌍으로 구성
- 필드의 수는 제한이 없습니다.
- 효율적으로 저장 및 관리가 가능합니다.
Usage
- Counter
Code
더보기
> HSET bike:1 model Deimos brand Ergonom type 'Enduro bikes' price 4972
(integer) 4
> HGET bike:1 model
"Deimos"
> HGET bike:1 price
"4972"
> HGETALL bike:1
1) "model"
2) "Deimos"
3) "brand"
4) "Ergonom"
5) "type"
6) "Enduro bikes"
7) "price"
8) "4972"
> HMGET bike:1 model price no-such-field
1) "Deimos"
2) "4972"
3) (nil)
> HINCRBY bike:1 price 100
(integer) 5072
> HINCRBY bike:1 price -100
(integer) 4972
6. Sorted Set
- 정렬 가능한 Set의 데이터 타입입니다.
- 정렬 기준: 특정 value 지정
- set과 hash가 섞인 데이터 타입이라 볼 수 있습니다.
Usage
- Leaderboard
- Rate limiter
Code
더보기
> ZADD racer_scores 10 "Norem"
(integer) 1
> ZADD racer_scores 12 "Castilla"
(integer) 1
> ZADD racer_scores 8 "Sam-Bodden" 10 "Royce" 6 "Ford" 14 "Prickett"
(integer) 4
> ZRANGE racer_scores 0 -1
1) "Ford"
2) "Sam-Bodden"
3) "Norem"
4) "Royce"
5) "Castilla"
6) "Prickett"
> ZREVRANGE racer_scores 0 -1
1) "Prickett"
2) "Castilla"
3) "Royce"
4) "Norem"
5) "Sam-Bodden"
6) "Ford"
> ZRANGE racer_scores 0 -1 withscores
1) "Ford"
2) "6"
3) "Sam-Bodden"
4) "8"
5) "Norem"
6) "10"
7) "Royce"
8) "10"
9) "Castilla"
10) "12"
11) "Prickett"
12) "14"
> ZRANGEBYSCORE racer_scores -inf 10
1) "Ford"
2) "Sam-Bodden"
3) "Norem"
4) "Royce"
> ZRANK racer_scores "Norem"
(integer) 0
> ZREVRANK racer_scores "Norem"
(integer) 3
> ZREM racer_scores "Castilla"
(integer) 1
> ZREMRANGEBYSCORE racer_scores -inf 9
(integer) 2
> ZRANGE racer_scores 0 -1
1) "Norem"
2) "Royce"
3) "Prickett"
bitmaps | - 대량의 데이터를 효율적으로 저장하고 관리하기 위한 도구입니다. - String을 비트 벡터처럼 다루기 위한 bit-oriented 연산 지원. - 특정 위치의 비트 값을 설정하는데 사용됩니다. |
사이트 방문 여부 작업 수행 여부 |
SETBIT pings:01-01 123 1 GETBIT pings:01-01 123 GETBIT pings:01-01 456 |
hyperloglogs | - 집합의 카디널리티를 추정하기 위한 확률적 데이터 타입입니다. - 완벽한 정확성을 포기하고 메모리 효율성을 위해 설계되었습니다. - 고정된 메모리 양을 사용하여 요소를 카운트합니다. |
방문자 수 구하기 | PFADD bikes Noah Deimo PFCOUNT bikes PFADD bikes2 Scala Qua PFMERGE all_bikes bikes bikes2 PFCOUNT all_bikes |
geospatial index | - 지리공간 인덱스 기능을 제공하는 데이터 타입입니다. - 좌표를 저장 및 검색할 수 있습니다. - 주어진 반경이나 경계 내에서 인접한 점을 찾는데 유용합니다. |
지도 앱 | GEOADD bikes -122.27652 37.805186 station:1 GEOADD bikes -122.2674626 37.806234 station:2 GEOADD bikes -122.2469854 37.810404 station:3 GEOSEARCH bikes FROMLONLAT -122 37 BYRADIUS 5km WITHDIST |
Stream | - 연속된 데이터 항목들을 저장하는 데이터 구조입니다. - 마치 시간 순서대로 기록된 로그 파일과 유사합니다. - 각 스트림 항목은 하나 이상의 필드-값 쌍으로 구성됩니다. - 실시간 이벤트를 기록하고 동시에 전송할 수 있습니다. - 각 스트림 항목에 대해 고유한 ID를 생성합니다. - 여러가지 스트리밍 전략을 지원하여 스트림이 무제한으로 성장하는 것을 방지합니다. |
이벤트 소싱 센서 모니터링 알람 |
XADD race* rider noah speed 30.2 position 1 XRANGE race 16926302-0 + COUNT 2 |
'Database > Redis' 카테고리의 다른 글
[Redis] 4. Use Redis (0) | 2024.09.05 |
---|---|
[Redis] 3-1. Interact with Data: Search and query (1) | 2024.09.05 |
[Redis] 1. Introduction to Redis (1) | 2023.10.29 |