[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.당신이 무엇을 할 수 있고, 나는 내 코드 이외의 다른 장소에서 이것을보고, 접미사를 사용하여 해시 키입니다. 당신은 아마 각 레코드를 식별하는 접미사, 내가 여기에 색상을 사용합니다 있습니다 :
당신이 무엇을 할 수 있고, 나는 내 코드 이외의 다른 장소에서 이것을보고, 접미사를 사용하여 해시 키입니다. 당신은 아마 각 레코드를 식별하는 접미사, 내가 여기에 색상을 사용합니다 있습니다 :
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.당신은 해시에서 동일한 키를 가진 여러 항목을 가질 수 없습니다. 그러나, 당신도 당신이 JSON을 사용할 수있는 키를 기준으로 모든 항목 또는 단일 행을 검색하려는 경우 :
당신은 해시에서 동일한 키를 가진 여러 항목을 가질 수 없습니다. 그러나, 당신도 당신이 JSON을 사용할 수있는 키를 기준으로 모든 항목 또는 단일 행을 검색하려는 경우 :
Records red = {color:red, price:12, info:"300 in stock"} Records blue = {color:blue, price:8, info:"310 in stock"}
당신이 JSON 사용하지 않을 경우 당신은 해시 테이블의 행되는으로, 여러 해시를 사용해야합니다. 또한 해시 각각의 키가 포함 된 세트를 저장하여 저에게 모든 기능을 지원할 수 있습니다.
-
==============================
3.나는 당신에게 해시가 어떻게 작동하는지있는 거 오해 생각합니다. 서로 다른 값을 가진 두 개의 동일한 필드를 가질 수 없습니다. 두 번째 HMSET 명령은 첫 번째 명령에서 값을 덮어 쓰기합니다. 당신도 고유의 필드 또는 다른 키를 사용해야합니다.
나는 당신에게 해시가 어떻게 작동하는지있는 거 오해 생각합니다. 서로 다른 값을 가진 두 개의 동일한 필드를 가질 수 없습니다. 두 번째 HMSET 명령은 첫 번째 명령에서 값을 덮어 쓰기합니다. 당신도 고유의 필드 또는 다른 키를 사용해야합니다.
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
'REDIS' 카테고리의 다른 글
[REDIS] Laravel 5.2 - 자신의 모든 장치에서 사용자를 로그 아웃하는 방법 (0) | 2020.01.06 |
---|---|
[REDIS] 를 CentOS에 레디 스의 여러 인스턴스를 실행 (0) | 2020.01.06 |
[REDIS] 장고 셀러리는 작업 수를 얻을 (0) | 2020.01.06 |
[REDIS] 나는 JWT는 레디 스에서 토큰을 저장해야 하는가? (0) | 2020.01.06 |
[REDIS] 구조 : 연결이 거부 - 로컬 호스트에서 레디 스에 연결할 수 없습니다 : 6379 (0) | 2020.01.06 |