developer tip

복잡한 데이터 구조 Redis

copycodes 2020. 12. 9. 08:24
반응형

복잡한 데이터 구조 Redis


해시의 해시가 있다고 가정 해 봅시다.

$data = {
    'harry' : {
         'age' : 25,
         'weight' : 75,
    },
    'sally' : {
        'age' : 25,
        'weight' : 75,
    }
}
  1. 그러한 데이터 구조를 저장하는 '일반적인'방법은 무엇입니까 (또는 그렇지 않습니까?)
  2. 값을 직접 얻을 수 있습니까 (예 : get harry : age?
  3. 일단 저장되면 하위 키의 값을 직접 변경할 수 있습니다 (예 : 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

반응형