Programming/Redis, Kafka
레디스redis 자료구조 예시 코드 (Geospatial 이용 거리 찾기 예제 포함)
Renechoi
2023. 5. 29. 23:05
우선 docker에서 실행중인 redis를 컨테이너에 접속하여 실행한다.
docker exec -it 0dda0724c460 redis-cli --raw
1. String 자료 구죠 (key-value)
set id 10
get id
del id
2. Hash 자료 구조 (key-subKey-value)
hgetall USER //key(USER)와 매핑되는 모든 필드와 값들을 조회
hset USER subkey value // key의 subkey의 값을 지정
hget USER subkey // 조회
3. 리스트 (List)
# 리스트에 값 추가
RPUSH mylist "apple"
RPUSH mylist "banana"
RPUSH mylist "cherry"
# 리스트에서 값 조회
LRANGE mylist 0 -1
# 리스트에서 값 제거
LREM mylist 0 "banana"
4. 셋 (Set)
# 셋에 값 추가
SADD myset "apple"
SADD myset "banana"
SADD myset "cherry"
# 셋에 있는 값 조회
SMEMBERS myset
# 셋에서 값 제거
SREM myset "banana"
5. 정렬 셋 (Sorted Set)
# 정렬된 집합에 값 추가
ZADD myzset 1 "apple"
ZADD myzset 2 "banana"
ZADD myzset 3 "cherry"
# 정렬된 집합에서 값 조회
ZRANGE myzset 0 -1
# 정렬된 집합에서 값 제거
ZREM myzset "banana"
6. Hash
# 해시에 필드와 값 추가
HSET myhash field1 "value1"
HSET myhash field2 "value2"
HSET myhash field3 "value3"
# 해시에서 필드 값 조회
HGET myhash field2
# 모든 필드와 값을 조회
HGETALL myhash
# 해시에서 필드 제거
HDEL myhash field3
7. 비트맵 bitmap
# 비트맵에 비트 설정
SETBIT mybitmap 0 1
SETBIT mybitmap 2 1
SETBIT mybitmap 5 1
# 비트맵에서 비트 조회
GETBIT mybitmap 2
# 비트맵의 비트 개수 세기
BITCOUNT mybitmap
8. Geospatial
# 지리 좌표 추가
GEOADD mylocation 126.9780 37.5665 "Seoul"
GEOADD mylocation 139.6917 35.6895 "Tokyo"
GEOADD mylocation -122.4194 37.7749 "San Francisco"
# 지리 좌표 조회
GEOPOS mylocation "Seoul"
# 위치 기반 검색
GEORADIUS mylocation 127 37 100 km
// geopoints1 자료구조에 pharmacy1,2 각각 경도, 위도 추가
geoadd geopoints1 127.0817 37.5505 pharmacy1
geoadd geopoints2 127.0766 37.541 pharmacy2
// 두 지역의 거리를 리턴(단위 km)
geodist geopoints1 pharmacy1 pharmacy2 km
geoadd geopoints2 127.0569046 37.61040424 pharmacy1
geoadd geopoints2 127.029052 37.60894036 pharmacy2
geoadd geopoints2 127.236707811313 37.3825107393401 pharmacy3
// geoponts2 이름의 자료구조에서 주어진 위도, 경도 기준으로 반경 10km 이내에 가까운 약국 찾기
georadius geopoints2 127.037033003036 37.596065045809 10 km withdist withcoord asc count 3
반응형