레디스는 캐싱, 큐잉, 이벤트 처리 등의 다양한 문제를 해결하는 데 도움이 되는 Collection을 제공한다.
SUBSTR
, GETRANGE
, SETRANGE
명령은 O(n)일 수 있으므로 성능에 주의해야 한다.SET
: 데이터 저장, key가 있으면 덮어쓴다. (set keyName “value”
)SETNX
: 지정한 key가 없을 경우에만 데이터 저장GET
: 데이터 조회 (get keyName
)MGET
: 여러 개의 데이터를 한 번에 조회 (mget keyName1 keyName2
)LPUSH
: 리스트의 앞부분에 새 요소를 추가 (LPUSH myList “a”
)LPOP
: 리스트 왼쪽에더 데이터를 추출하고 삭제 (LPOP myList
)LLEN
: 리스트 요소 총 개수 조회LMOVE
: 리스트 간 데이터 이동LTRIM
: 인덱스로 지정한 범위 밖의 값들을 삭제SADD
: 집합에 새 멤버 추가 (sadd mySet a
)SREM
: 특정 멤버를 삭제 (srem mySet a
)SISMEMBER
: 집합에 멤버가 있는지 확인 (sismember mySet a
)SINTER
: 교집합을 구함SCARD
: 집합의 멤버 개수 조회SMEMBERS
명령은 모든 집합 데이터를 가져오기에 O(n)이므로 주의해야 한다.hset key field value
)hget key field
)
HMGET: 여러개의 value를 조회hincrby key field increment
)> HSET user:123 username martina firstName Martina lastName Elisa country GB
(integer) 4
> HGET user:123 username
"martina"
> HGETALL user:123
1) "username"
2) "martina"
3) "firstName"
4) "Martina"
5) "lastName"
6) "Elisa"
7) "country"
8) "GB"
HKEYS
, HVALS
, HGETALL
등의 명령어는 O(n)이며 여기서 n은 field-value 쌍의 수이다.ZADD
: 집합에 score와 member 추가 (zadd key score member
)ZRANGE
: index로 범위를 지정하여 조회ZRANK
: 오름차순 기준 member를 지정해서 rank(index) 조회 (zrank key member
)ZREVRANK
: 내림차순 기준 member를 지정해서 reverse rank 조회> ZADD leaderboard:455 100 user:1
(integer) 1
> ZADD leaderboard:455 75 user:2
(integer) 1
> ZADD leaderboard:455 101 user:3
(integer) 1
> ZADD leaderboard:455 15 user:4
(integer) 1
> ZADD leaderboard:455 275 user:2
(integer) 0
> ZRANGE leaderboard:455 0 2 REV WITHSCORES
1) "user:2"
2) "275"
3) "user:3"
4) "101"
5) "user:1"
6) "100"
> ZREVRANK leaderboard:455 user:2
(integer) 0
XADD
: stream에 새 항목 추가XREAD
: 하나 또는 그 이상의 항목을 시간 순 조회XRANGE
: 주어진 두 ID 사이의 항목들을 조회XLEN
: 항목 길이GEOADD
: 지정된 지리 공간 인덱스에 위치를 추가 (위도보다 경도 먼저)GEOSEARCH
: 지정된 반경 또는 경계 박스가 있는 위치 반환> GEOADD locations:ca -122.27652 37.805186 station:1
(integer) 1
> GEOADD locations:ca -122.2674626 37.8062344 station:2
(integer) 1
> GEOADD locations:ca -122.2469854 37.8104049 station:3
(integer) 1
> GEOSEARCH locations:ca FROMLONLAT -122.2612767 37.7936847 BYRADIUS 5 km WITHDIST
1) 1) "station:1"
2) "1.8523"
2) 1) "station:2"
2) "1.4979"
3) 1) "station:3"
2) "2.2441"
SETBIT
: bit 값 조정GETBIT
: bit 값 조회BITOP
: bit 연산 (AND, OR, XOR, NOT) 실행BITOP
은 O(n)이고 나머지는 O(1)> SETBIT pings:2024-01-01-00:00 123 1
(integer) 0
> GETBIT pings:2024-01-01-00:00 123
1
> GETBIT pings:2024-01-01-00:00 456
0
BITFIELD
: 하나 이상의 값을 원자적으로 설정하고, 증가하고, 읽는다.BITFIELD_RO
: BITFIELD
의 read-only 변형BITFIELD
는 O(n)PFADD
: 원소 추가PFCOUNT
: 원소 개수 조회PFMERGE
: 두 개 이상의 HyperLogLogs를 하나로 결합PFMERGE
는 O(n)이다.> PFADD members 123
(integer) 1
> PFADD members 500
(integer) 1
> PFADD members 12
(integer) 1
> PFCOUNT members
(integer) 3
https://redis.io/docs/data-types/
https://inpa.tistory.com/entry/REDIS-📚-데이터-타입Collection-종류-정리