[REDIS] 레디 스에서 효율적인 인덱스 유형 작업
REDIS레디 스에서 효율적인 인덱스 유형 작업
나는 일을하고 작업을 위해, 레디 스에서 인덱스의 집합을 만들려고하고 있습니다.
이 같은 :
그리고 나는 금발 머리와 파란 눈을 가진 모든 키를 찾을 수 소결을 사용할 수 있습니다.
이 같은 해시를 가지고 :
어떤 것은 결과 키를 가지고 가고, 일치하는 해시를 검색 할 수있는 가장 빠른 방법입니다.
이 데이터를보다 쉽게 이해할 수 있도록하기 위해 내가 분석을 저장하기 위해이 사용하고 내가 키 조회의 다소 큰 세트를해야 할 것입니다 단지 데모입니다.
내가 멀티 파이프 라이닝되어 생각할 수있는이 옵션은 + 간부를 가져옵니다 또는 루아 스크립트를 사용하여 와이어를 통해 키의 무리를 보내는 방지 할 수 있습니다.
더 좋은 저장소 개체의 데이터에 대한 방법과 인덱스를 또는 네트워크를 통해 ID의 한 무리를 보내지 않고 그 해시의 모든 당겨 할 수있는 효율적인 방법이 있다면 ... 저를 작성하시기 바랍니다!
편집하다
I합니다 (레디 스 스크립팅 분기를 사용) LUA 스크립트를 사용하여 종료
local fkeys = redis.call('sinter', unpack(KEYS))
local r = {}
for i, key in ipairs(fkeys) do
r[#r+1] = redis.call('hgetall',key)
end
return r
어느 DB 측에 모든 처리를 유지합니다.
해결법
-
==============================
1.키 목록 얻기 다음 값을 얻기 위해 일을하는 것은 거의이 문제를 해결할 수있는 유일한 방법입니다. 숫자가 당신이 진짜 성능 문제를보기 전에 정말 큰해야 - 당신은 아마 매우 효율적으로 키를 얻을 수조차하지 않고 있지만 그것은 실험 루아 스크립트에 대한 좋은 유스 케이스와 같은 모양을한다.
키 목록 얻기 다음 값을 얻기 위해 일을하는 것은 거의이 문제를 해결할 수있는 유일한 방법입니다. 숫자가 당신이 진짜 성능 문제를보기 전에 정말 큰해야 - 당신은 아마 매우 효율적으로 키를 얻을 수조차하지 않고 있지만 그것은 실험 루아 스크립트에 대한 좋은 유스 케이스와 같은 모양을한다.
당신이 할 수있는 가능성이 추가 최적화가 가능하게 일시적으로 사용하거나 집합을 분류하거나 각 해시에서 하나의 관련 속성을 검색하지만, 이러한 사용자가 검색하고자하는 데이터의 종류에 크게 의존하고있다.
from https://stackoverflow.com/questions/6399730/efficient-index-type-operations-in-redis by cc-by-sa and MIT license
'REDIS' 카테고리의 다른 글
[REDIS] 그것은 FUSE 파일 시스템과 리눅스 VFS 캐시를 가질 수 있습니까? (0) | 2020.01.25 |
---|---|
[REDIS] 어떻게 StackExchange.Redis 기본적인 시계를 할 수 (0) | 2020.01.25 |
[REDIS] 큰 ETA와 예약 셀러리 작업 (0) | 2020.01.25 |
[REDIS] AWS 람다와 레디 스 클라이언트. 이유는 콜백을 호출 할 수 없습니다? (0) | 2020.01.25 |
[REDIS] 비동기 AOF fsync를 너무 오래 (디스크가 사용 중이?)하고있다. 전체에 fsync를 기다리지 않고 AOF 버퍼를 작성,이 레디 스 느려질 수 있습니다 (0) | 2020.01.25 |