Server가 절전모드로 전환될 경우 Redis는 전부 사라진다.
== Redis
Redis
- In-memory 특성으로 접근 속도가 빠르다.
- Key-Value, 자료 구조 데이터를 유지할 수 있음
- Pub/Sub 서버로 많이 사용
- 단점 : 데이터가 정확하게 유지됨을 보장하지 않음
$ redis-cli
- Redis를 CLI 형식으로 실행할 때 사용한다.
6379> shutdown
- Redis Server를 중지한다.
String
6379> set key Hello
6379> get key
- key-Value 형식으로 key라는 이름에 Hello를 저장한다.
- key-Value 형식으로 key에 들어있는 값을 출력한다.
Object
6379> hmset key field value [field value ...]
ex) hmset friends name, zero, age, 24
- friends 오브젝트 내부에 데이터를 넣는다.
- 'name', 'zero', 'age', 24 순서대로 넣는다.
6379> hgetall key
ex) hgetall friends
- friends 오브젝트 내부에 들어있는 모든 데이터를 출력한다.
List
6379> lpush key element [element ...]
ex) lpush fruits banana pear
- fruits 리스트에 왼쪽부터 데이터를 삽입한다.
- pear, banana 순서대로 삽입한다. ☆
6379> lrange key start stop
ex) lrange fruits 0 -1
result) "pear", "banana"
- fruits 리스트의 처음과 끝을 출력한다.
6379> rpush key element [element ...]
ex) rpush fruits apple orange pineapple
- fruits 리스트에 오른쪽부터 데이터를 삽입한다.
- apple, orange, pineapple 순서대로 삽입한다. ☆
6379> lrange key start stop
ex) lrange fruits 0 -1
result) "pear", "banana", "apple", "orange", "pineapple"
- fruits 리스트의 처음과 끝을 출력한다.
Set
6379> sadd key member [member ...]
ex) sadd animals dog cat bear cat lion
- animals 세트에 중복된 데이터가 제거된 값을 삽입한다.
6379> smembers key
ex) smembers animals
result) bear, lion, cat, dog
- animals 세트를 출력한다.
- 알파벳 순서대로 자동으로 정렬된다.
6379> zrange key start end
ex) zrange geo:locations 0 -1
Delete
6379> del animals
- animals 세트를 삭제한다.
KEYS
6379> KEYS *
- 등록된 모든 Keys를 출력해준다.
Geometry
GEOADD
GEOADD key [NX|XX] [CH] longitude latitude member [longitude latitude member ...]
- XX: 기존 멤버를 수정한다. 새 멤버를 추가하지는 않는다.
- NX: 새 멤버를 추가한다. 기존 멤버를 수정하지는 않는다.
- CH: 새로 추가되거나 수정된 멤버의 개수를 리턴한다. CH 옵션을 사용하지 않으면 수정된 개수는 리턴하지 않는다.
- 시간복잡도 : O(log(N)). N은 Sorted Set에 저장된 멤버의 개수
GEOADD socketMap 126.9309533 37.5671461 2
GEOADD socketMap 126.941069 37.562110 4
GEOADD socketMap 126.933688 37.564304 5
GEOADD socketMap 126.944231 37.561851 6
GEOADD socketMap CH 126.9309533 37.5671461 2 126.941069 37.562110 4 126.933688 37.564304 5 126.933688 37.564304 5 126.944231 37.561851 6
- socketMap이름의 Geometry를 삽입
- Member가 이미 있을 경우 경도와 위도를 업데이트 한다.
- 삽입 순서는 Longitude, Latitude
GEODIST
GEODIST key member1 member2 [m|km|ft|mi]
- [m|km|ft|mi] : 표시할 두 지역의 거리 단위를 나타낸다.
- m (Meters), km (Kilometers), mi (Miles), ft (Feet)
- 시간복잡도 : O(log(N)). N은 Sorted Set에 저장된 멤버의 개수
GEODIST socketMap 4 6
GEODIST socketMap 4 5 m
GEODIST socketMap 2 4 km
GEODIST socketMap 5 6 mi
GEODIST socketMap 2 5 ft
- 두 위치의 거리를 반환
- Default 거리 단위는 M (Meters)
GEOHASH
GEOHASH key member [member ...]
- 시간복잡도 : O(log(N)). N은 Sorted Set에 저장된 멤버의 개수
GEOHASH socketMap 4 5 6
result) "wydm8tgxjk0"
- Redis의 Geometry는 Geohash를 사용해 요소의 위치를 나타낸다.
- 표준 Geohash 값을 반환한다.
GEOPOS
GEOPOS key member [member ...]
- 시간복잡도 : O(log(N)). N은 Sorted Set에 저장된 멤버의 개수
GEOPOS socketMap 4
GEOPOS socketMap 5
GEOPOS socketMap 6
GEOPOS socketMap 4 5 6
- socketMap이름의 Geometry 형식의 데이터를 조회한다.
- member를 여러개 작성해 한번에 불러올 수 있다.
- 조회 순서는 Longitude, Latitude
GEORADIUS
GEORADIUS key longitude latitude radius m|km|ft|mi [WITHCOORD] [WITHDIST] [WITHHASH] [COUNT count [ANY]] [ASC|DESC] [STORE key] [STOREDIST key]
- [m|km|ft|mi] : 표시할 두 지역의 거리 단위를 나타낸다.
- m (Meters), km (Kilometers), mi (Miles), ft (Feet)
- WITH Option
- WITHDIST : 지정된 중심에서 항목의 거리를 반환
- WITHCOORD : 일치하는 항목의 경도, 위도 좌표를 반환
- WITHHASH : Geohash 인코딩으로 반환
- COUNT Option
- N개의 일치하는 항목으로 결과를 제한할 수 있다.
- ANY 사용 시 즉시 명령이 반환되므로 부하가 적게걸린다.
- Sort Option
- ASC : 가장 가까운 것 부터 정렬
- DESC : 가장 먼 것 부터 정렬
- STORE : 정렬된 Set 형식으로 저장
- STIREDIST : 부동 소수점 숫자로 채워진 정렬된 Set 형식으로 저장
- 시간복잡도 : O(N+log(M))
- N : 원형 영역의 경계 상자 내부 요소 수
- M : Index 내부 항목 수
GEORADIUS socketMap 126.9309533 37.5671461 200 m WITHDIST ASC
result) 1) 1) "2"
result) 2) "0.10.30"
GEORADIUS socketMap 126.9309533 37.5671461 2 km WITHCOORD ASC
GEORADIUS socketMap 126.9309533 37.5671461 1 km WITHDIST ASC
- socketMap 이름의 Key에서 검색한다.
- 126.9309533 37.5671461의 경도 위도에서
- 1 km범위 내부에 있는 데이터만 조회한다.
- WITHCOORD : 검색된 Geometry 데이터의 경도, 위도를 반환한다.
- WITHDIST : 지정된 중심에서 반환된 항목의 거리를 반환
- ASC : 가장 가까운것 부터 정렬한다.
- 거리 단위를 표시할 때 띄어쓰기 ' '를 사용하여야 한다.
- 거리 단위를 표시할 때 소문자, 대문자를 확실히 구분하여야 한다.
GEORADIUSBYMEMBER ☆
GEORADIUSBYMEMBER key member radius m|km|ft|mi [WITHCOORD] [WITHDIST] [WITHHASH] [COUNT count [ANY]] [ASC|DESC] [STORE key] [STOREDIST key]
- [m|km|ft|mi] : 표시할 두 지역의 거리 단위를 나타낸다.
- m (Meters), km (Kilometers), mi (Miles), ft (Feet)
- WITH Option
- WITHDIST : 지정된 중심에서 항목의 거리를 반환
- WITHCOORD : 일치하는 항목의 경도, 위도 좌표를 반환
- WITHHASH : Geohash 인코딩으로 반환한다.
- COUNT Option
- N개의 일치하는 항목으로 결과를 제한할 수 있다.
- ANY 사용 시 즉시 명령이 반환되므로 부하가 적게걸린다.
- Sort Option
- ASC : 가장 가까운 것 부터 정렬
- DESC : 가장 먼 것 부터 정렬
- STORE : 정렬된 Set 형식으로 저장
- STIREDIST : 부동 소수점 숫자로 채워진 정렬된 Set 형식으로 저장
- 시간복잡도 : O(N+log(M))
- N : 원형 영역의 경계 상자 내부 요소 수
- M : Index 내부 항목 수
GEORADIUSBYMEMBER socketMap 2 200 m WITHDIST ASC
result) 1) 1) "2"
result) 2) "0.10.30"
GEORADIUSBYMEMBER socketMap 4 2 km WITHCOORD ASC
GEORADIUSBYMEMBER socketMap 4 1 km WITHDIST ASC
- socketMap 이름의 Key에서 검색한다.
- 4 의 Member 위치를 기준으로 검색한다.
- 1 km범위 내부에 있는 데이터만 조회한다.
- WITHCOORD : 검색된 Geometry 데이터의 경도, 위도를 반환한다.
- WITHDIST : 지정된 중심에서 항목의 거리를 반환
- ASC : 가장 가까운것 부터 정렬한다.
- 거리 단위를 표시할 때 띄어쓰기 ' '를 사용하여야 한다.
- 거리 단위를 표시할 때 소문자, 대문자를 확실히 구분하여야 한다.
GEOSEARCH (v 6.2) ☆
GEOSEARCH key [FROMMEMBER member] [FROMLONLAT longitude latitude] [BYRADIUS radius m|km|ft|mi] [BYBOX width height m|km|ft|mi] [ASC|DESC] [COUNT count [ANY]] [WITHCOORD] [WITHDIST] [WITHHASH]
- FROMMEMBER : Member를 기준으로 검색할 때 사용
- FROMLONLAT : 경도, 위도를 기준으로 검색
- BYRADIUS : 원형의 반지름으로 검색한다.
- m(Meter), km(KiloMeter), ft(Feet), mi(Mile)
- BYBOX : 직사각형의 세로, 가로를 기준으로 검색
- Sort Option
- ASC : 가장 가까운 것 부터 정렬
- DESC : 가장 먼 것 부터 정렬
- COUNT Option
- N개의 일치하는 항목으로 결과를 제한할 수 있다.
- ANY 사용 시 즉시 명령이 반환되므로 부하가 적게걸린다.
- WITH Option
- WITHDIST : 지정된 중심에서 항목의 거리를 반환
- WITHCOORD : 일치하는 항목의 경도, 위도 좌표를 반환
- WITHHASH : Geohash 인코딩으로 반환한다.
- 시간복잡도 : O(N+log(M))
- N : 원형 영역의 경계 상자 내부 요소 수
- M : Index 내부 항목 수
GEOSEARCH socketMap FROMMEMBER 2 BYRADIUS 1 km ASC
- socketMap의 key에서
- 2번 Member를 기준으로 검색한다.
- 원의 반지름으로 1 km 거리 내부에있는 것을 조회한다.
- 가장 가까운 것 부터 조회한다.
GEOSEARCH socketMap FROMLONLAT 126.9309533 37.5671461 BYRADIUS 1 km ASC COUNT 5 WITHCOORD
- socketMap의 key에서
- 126.9309533 37.5671461의 경도 위도 위치를 기준으로 검색한다.
- 원의 반지름으로 1 km 거리 내부에있는 것을 조회한다.
- 가장 가까운 것 부터 조회한다.
- 최대 출력 개수를 5개로 설정
- 검색된 데이터의 경도, 위도를 반환한다.
ZREM (v 1.2)
ZREM key member [member ...]
- 시간복잡도 : O(M*log(N))
- N : zSet의 요소 갯수
- M : zSet의 제거할 요소 갯수
ZREM geo:locations 'New York'
- geo:locations의 키값이 가진 zSet중에서
- 'New York'의 값을 삭제한다.
ZMSCORE (v 6.2)
ZMSCORE key member [member ...]
- 시간복잡도 : O(N)
- N : zSet의 요소 갯수
ZMSCORE geo:locations 'New York'
- geo:locations의 키값이 가진 zSet중에서
- 'New York'의 정보를 조회한다.
Admin
6379> SELECT 1
- DB를 선택한다.
6379> exists key
ex) exists geo:locations
result) 1
- geo:locations의 키가 존재하는지 확인
- 존재할경우 1, 없을 경우 0
6379> type key
ex) type geo:locations
result) zset
- geo:locations의 이름을 가진 key의 type을 출력한다.
$ redis-cli monitor
6379> monitor
- Redis에서 발생하는 이벤트를 실시간으로 확인할 수 있다.
$ redis-cli info all
6379> info all
- Redis의 설정을 조회
'Database > Redis' 카테고리의 다른 글
[Redis] Ubuntu 18.04 Redis 설치 (0) | 2021.08.18 |
---|---|
[Redis] Node.js Redis, GeoRedis Module (0) | 2021.08.17 |