Redis: Jak przeciąć „normalny” zestaw z posortowanym zestawem?

Załóżmy, że mam zestaw (lub posortowany zestaw lub listę, jeśli byłoby lepiej)A od 100 do 1000 ciągów.

Potem mam posortowany zestawB o wiele więcej strun, powiedzmy milion.

TerazC powinien być przecięciemA iB (oczywiście ze strun).

Chcę mieć każdą krotkę (X, SCORE_OF_X_IN_B), w której znajduje się X.C.

Dowolny pomysł?

Mam dwa pomysły:

Interstorezapisz A posortowany zestaw z każdym wynikiem 0interstore do Dzdobądź każdy element Dusuń DProsta pętla w klienciezapętlić A w moim programie klienckimpobierz zscore dla każdego łańcucha

Podczas gdy 1. ma zbyt wiele narzutów po stronie redis (musi na przykład pisać. Strona redis również dość złożona czasowohttp://redis.io/commands/zinterstore), 2. miałby | A | połączenia z bazą danych i nie będzie dobrym wyborem.

Może mógłbym napisać skrypt redis / lua, który będzie działał jak zscore, ale z dowolną liczbą ciągów, ale nie jestem pewien, czy mój host zezwala na skrypty ...

Chciałem tylko zapytać, czy istnieje eleganckie i szybkie rozwiązanie bez skryptów!

questionAnswers(1)

yourAnswerToTheQuestion