[REDIS] 레디 스에서 필터링 요소
REDIS레디 스에서 필터링 요소
나는 레디 스에 새로운 오전, 그래서 질문을 변명.
나는 해시의 목록을 만들려고 노력하고 있습니다. (JSON)에 예를 들면 :
{
userList: [
{ id: 1, name: 'Foo', ranking: 10 },
{ id: 2, name: 'Bar', ranking: 5 }
]
}
그리고 내가 원하는 :
당신은 어떻게 레디 스의 마지막 스키마를 구현합니까? 그것은 수 있습니까?
어떻게 요소를 필터링하고, 그 중 일부를 제거하는 방법은 무엇입니까?
해결법
-
==============================
1.레디 스 스키마가없는 것입니다. 당신은 데이터 저장 방식을 필요하자 전화.
레디 스 스키마가없는 것입니다. 당신은 데이터 저장 방식을 필요하자 전화.
한 가지 가능한 방법은 이러한 JSON 자신의 ID가 키와 JSON 텍스트가 값입니다 ID에 의해 개체를 추가 할 HSET 또는 HMSET을 사용하고 있습니다. 우리는 사용자로이 해시 전화 할게 : byid.
이 문제의 첫 번째 부분입니다. 지금 당신은 id로 객체를 얻을 수 있습니다.
이제 다음 문제는 당신이 순위 부르는의 범위에서 객체를 검색 할 수 있습니다. 이 취득하기 위하여는, 당신은 ZADD를 사용하여 정렬 된 세트에서 객체를 저장해야합니다. 정렬 된 세트는 별 정렬하고, 항목을 점수로 저장됩니다. 그것은 당신의 사용 사례에 대한 완벽한 소리!
사실 당신은 전체 소트 세트에서 객체 ID를 저장하는거야 :
zadd 사용자 : byranking 10 1 5 2
... (10) 지금의 스코어 (즉, 실제 값의 순위) 및 1 ID 및이다.
그래서, 당신은 어떻게 순위에 의해 항목을 필터링? ZRANGEBYSCORE 사용 :
소위 ZRANGEBYSCORE는 당신에게 검색 사용자의 ID를 제공 할 것입니다. 당신은 어떻게 자신의 JSON 텍스트를 가져? HMGET 사용 :
HMGET users:byid 1 2
... 10 순위가 포함 된 경우, ID 1과 2 모두 사용자를 얻을 것이다.
from https://stackoverflow.com/questions/33045710/filtering-elements-in-redis by cc-by-sa and MIT license
'REDIS' 카테고리의 다른 글
[REDIS] 어떻게 노드 JS + 레디 스 + MongoDB를 웹 응용 프로그램에서 경쟁 조건을 해결하기 위해 (0) | 2020.01.10 |
---|---|
[REDIS] resque 근로자가 작업을 완료했을 때 아는 (0) | 2020.01.10 |
[REDIS] 어떻게 레디 스에서 값을 얻을 Nginx에있는 변수에 넣을 수 있습니다? (0) | 2020.01.10 |
[REDIS] 레디 스 클러스터 /로드 밸런싱 (0) | 2020.01.10 |
[REDIS] 레디 스에서 사전의 보관 사전 (StackExchange.Redis) (0) | 2020.01.10 |