복붙노트

[REDIS] 레디 스 해시의 키에 여러 값을 추가 할 수있는 쿼리를 작성?

REDIS

레디 스 해시의 키에 여러 값을 추가 할 수있는 쿼리를 작성?

나는 레디 스에서 해시 키에 여러 값을 할당 할 레디 스 Hashes.Is 가능의 명령 목록을 갔다? 예를 들어, 내가 해시의 형태로 다음과 같은 테이블을 표현하기 위해 노력하고 있습니다.

 Prod_Color  |   Prod_Count  |   Prod_Price   |   Prod_Info
------------------------------------------------------------
  Red        |       12      |       300      |   In Stock
  Blue       |        8      |       310      |   In Stock

나는 이후에 다음과 같은 해시 명령을 시도

HMSET Records Prod_Color "Red" Prod_Count 12 Prod_Price 300 Prod_Info "In Stock"

HMSET Records Prod_Color "Blue" Prod_Count 8 Prod_Price 310 Prod_Info "In Stock"

내가 명령 HGETALL 기록을 사용하여 해시를 검색 할 때 그러나, 나는 삽입 값의 두 번째 행 (즉. 블루, 8310, 주식을)보고 있어요! 나는 그러나, 나는 하나의 해시의 모든 값을 삽입하고자하는, 내가 별도의 해시를 생성하고 값의 두 번째 행을 삽입 할 수 있음을 이해합니다.

해결법

  1. ==============================

    1.당신이 무엇을 할 수 있고, 나는 내 코드 이외의 다른 장소에서 이것을보고, 접미사를 사용하여 해시 키입니다. 당신은 아마 각 레코드를 식별하는 접미사, 내가 여기에 색상을 사용합니다 있습니다 :

    당신이 무엇을 할 수 있고, 나는 내 코드 이외의 다른 장소에서 이것을보고, 접미사를 사용하여 해시 키입니다. 당신은 아마 각 레코드를 식별하는 접미사, 내가 여기에 색상을 사용합니다 있습니다 :

    AT INSERT 시간 :

    HMSET Records:red Prod_Color "Red" Prod_Count 12 Prod_Price 300 Prod_Info "In Stock"
    HMSET Records:blue Prod_Color "Blue" Prod_Count 8 Prod_Price 310 Prod_Info "In Stock"
    
    /* For each HMSET above, you issue SADD */
    SADD Records:Ids red
    SADD Records:Ids blue
    

    AT QUERY 시간 :

    /* If you want to get all products, you first get all members */
    SMEMBERS Records:Ids
    
    /* ... and then for each member, suppose its suffix is ID_OF_MEMBER */
    HGETALL Records:ID_OF_MEMBER
    
    /* ... and then for red and blue (example) */
    HGETALL Records:red
    HGETALL Records:blue
    

    당신은 아마이 관계형 데이터베이스 레코드에서 당신 사용할 수 있어야하기 때문에, 접미사로 기본 키를 사용하고 싶습니다. 또한, 당신은 구성원의 설정 (예를 들어 스렘 기록 : IDS가 빨간색)을 유지해야한다, 해시 키 (예를 들어, DEL 기록 : 빨간색)을 삭제하는 경우. 또한 레디 스이 향상된 캐시로 정말 좋은 기억, 당신은 값을 유지 (그 성능을 유지)을 잘 설정해야합니다.

  2. ==============================

    2.당신은 해시에서 동일한 키를 가진 여러 항목을 가질 수 없습니다. 그러나, 당신도 당신이 JSON을 사용할 수있는 키를 기준으로 모든 항목 또는 단일 행을 검색하려는 경우 :

    당신은 해시에서 동일한 키를 가진 여러 항목을 가질 수 없습니다. 그러나, 당신도 당신이 JSON을 사용할 수있는 키를 기준으로 모든 항목 또는 단일 행을 검색하려는 경우 :

    Records red = {color:red, price:12, info:"300 in stock"}
    Records blue = {color:blue, price:8, info:"310 in stock"}
    

    당신이 JSON 사용하지 않을 경우 당신은 해시 테이블의 행되는으로, 여러 해시를 사용해야합니다. 또한 해시 각각의 키가 포함 된 세트를 저장하여 저에게 모든 기능을 지원할 수 있습니다.

  3. ==============================

    3.나는 당신에게 해시가 어떻게 작동하는지있는 거 오해 생각합니다. 서로 다른 값을 가진 두 개의 동일한 필드를 가질 수 없습니다. 두 번째 HMSET 명령은 첫 번째 명령에서 값을 덮어 쓰기합니다. 당신도 고유의 필드 또는 다른 키를 사용해야합니다.

    나는 당신에게 해시가 어떻게 작동하는지있는 거 오해 생각합니다. 서로 다른 값을 가진 두 개의 동일한 필드를 가질 수 없습니다. 두 번째 HMSET 명령은 첫 번째 명령에서 값을 덮어 쓰기합니다. 당신도 고유의 필드 또는 다른 키를 사용해야합니다.

  4. from https://stackoverflow.com/questions/6864968/writing-a-query-to-add-multiple-values-to-a-key-in-redis-hashes by cc-by-sa and MIT license