복잡한 데이터 구조 Redis
해시의 해시가 있다고 가정 해 봅시다.
$data = {
'harry' : {
'age' : 25,
'weight' : 75,
},
'sally' : {
'age' : 25,
'weight' : 75,
}
}
- 그러한 데이터 구조를 저장하는 '일반적인'방법은 무엇입니까 (또는 그렇지 않습니까?)
- 값을 직접 얻을 수 있습니까 (예 : get harry : age?
- 일단 저장되면 하위 키의 값을 직접 변경할 수 있습니다 (예 : sally : weight = 100).
그러한 데이터 구조를 저장하는 '일반적인'방법은 무엇입니까 (또는 그렇지 않습니까?)
예를 들어 harry와 sally는 필드가 연령 및 체중과 같은 속성을 나타내는 별도의 해시 에 각각 저장됩니다 . 그런 다음 set structure는 redis에 저장 한 모든 구성원 (harry, sally, ...)을 보유합니다.
값을 직접 얻을 수 있습니까 (예 : get harry : age?)
예, HGET 또는 HMGET 또는 HGETALL을 참조하십시오 .
일단 저장되면 하위 키의 값을 직접 변경할 수 있습니다 (예 : sally : weight = 100).
예, HSET을 참조하십시오 .
redis에 저장해야하는 복잡한 데이터를 예로 들어 보겠습니다.
$data = {
"user:1" : {
name : "sally",
password : "123"
logs : "25th october" "30th october" "12 sept",
friends : "34" , "24", "10"
}
"user:2" :{
name : ""
password : "4567"
logs :
friends: ""
}
}
우리가 직면 한 문제는 친구와 로그가 목록이라는 것입니다. 따라서 redis에서이 데이터를 표현하기 위해 할 수있는 것은 해시를 사용하고 다음과 같이 나열하는 것입니다.
옵션 1. user : 1 및 user : 2로 키가있는 해시 맵
hmset user:1 name "sally" password "12344"
hmset user:2 name "pally" password "232342"
create separate list of logs as
logs:1 { here 1 is the user id }
lpush logs:1 "" "" ""
lpush logs:2 "" "" ""
and similarly for friends.
옵션 2 : 덤프 된 json 데이터가 문자열 인코딩으로 포함 된 해시 맵
hmset user:1 name "sally" password "12344" logs "String_dumped_data" friends "string of dumped data"
옵션 3 : 이것은 # 1의 또 다른 표현입니다.
something like user:1:friends -> as a list
and user:2:friends -> as a list
제발, 내가 틀렸다면 나를 정정하십시오.
수행하려는 작업에 따라 다르지만 데이터 구조가 더 깊지 않고 각 필드에 액세스해야하는 경우 해시를 사용하는 것이 좋습니다. http://redis.io/commands#hash
다음은 각각 pro 및 contra가있는 redis 데이터 유형에 대한 좋은 개요입니다. http://redis.io/topics/data-types
참고URL : https://stackoverflow.com/questions/8810036/complex-data-structures-redis
'developer tip' 카테고리의 다른 글
Android ViewGroup 충돌 : null 개체 참조의 'int android.view.View.mViewFlags'필드에서 읽기 시도 (0) | 2020.12.09 |
---|---|
JS가있는 웹 사이트는 개발자 도구가 활성화 될 때까지 IE9에서 작동하지 않습니다. (0) | 2020.12.09 |
Apple clang 버전 및 해당 업스트림 LLVM 버전 가져 오기 (0) | 2020.12.09 |
jQuery 플러그인 템플릿-모범 사례, 규칙, 성능 및 메모리 영향 (0) | 2020.12.09 |
애플리케이션 백그라운드에서 동영상을 녹화하는 방법 : Android (0) | 2020.12.09 |