Redis, плейлисты с указателями на фильмы, это возможно? - PullRequest
0 голосов
/ 03 марта 2020

У меня есть коллекция фильмов, около 150 тысяч, и у меня есть несколько плейлистов, где несколько фильмов появляются несколько раз.

Я хочу кэшировать фильмы и плейлисты на Redis.

Что Мне нужно было бы, чтобы списки воспроизведения сохраняли только ссылки на фильмы, поэтому, когда я получаю список воспроизведения, он приносит ссылочные фильмы, но если я изменю mov ie, он будет изменен во всех списках воспроизведения.

Я не хотел получать список воспроизведения только с идентификаторами, а затем снова должен извлекать каждый mov ie по идентификатору. Есть ли способ сделать это непосредственно в одном запросе? как если бы это был указатель ...

Спасибо!

1 Ответ

1 голос
/ 04 марта 2020

На мой взгляд, у вас есть 2 варианта:

  1. Написание сценария lua, который даст вам для данного списка воспроизведения все фильмы в этом списке воспроизведения. Основным недостатком этого подхода является то, что он не будет работать на кластере, поскольку фильмы могут располагаться в другом сегменте, чем список воспроизведения.
  2. Используйте RedisGears (https://github.com/RedisGears/RedisGears). В одной строке python вы можете делать именно то, что вам нужно, и это будет отлично работать на кластере. Это будет выглядеть примерно так (при условии, что плейлист представляет собой список фильмов с переадресацией, расположенный в хэше redis):

    GB (). Flatmap (lambda r: r) .repartition (lambda r: r) .map (lambda) r: execute ('hgetall', r)). run ('')

    • flatmap - иметь запись на мов ie
    • перераспределение - так что каждый MOV ie запись будет go в осколок, где он расположен
    • map - выполнить hgetall и получить MOV ie data
    • run - run автоматически соберет все данные из все осколки и верните их.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...