redis,播放列表中有指向电影的指针,这可能吗?

7dl7o3gd  于 2021-06-09  发布在  Redis
关注(0)|答案(1)|浏览(260)

我有一个电影集,大约15万部,我有几个播放列表,其中几部电影出现了好几次。
我想在redis上缓存电影和播放列表。
我需要的是让播放列表只保存对电影的引用,所以当我检索播放列表时,它会带来引用的电影,但是如果我更改了一部电影,它将在所有播放列表中更改。
我不想检索只有id的播放列表,然后再检索每个电影的id,有没有一种方法可以直接在一个查询?就像一个指针。。。
谢谢!

ubbxdtey

ubbxdtey1#

在我看来,你有两个选择:
写一个lua脚本,对于给定的播放列表,它将为您提供该播放列表中的所有电影。这种方法的主要缺点是,它不会在集群上工作,因为电影可能位于不同的分片,而不是播放列表。
使用Redisages(https://github.com/redisgears/redisgears). 在一个python行中,您可以做您需要的事情,并且它将在集群上完美地工作。它看起来是这样的(假设playlist是redis哈希中的redis电影列表):
gb().flatmap(lambda r:r).重新分区(lambda r:r).Map(lambda r:execute('hgetall',r)).运行('<playlist\u key\u name>')
平面图-每部电影都有一张唱片
重新分区-这样每个电影记录都会转到它所在的碎片
Map-执行hgetall并获取电影数据
run-run将自动收集所有碎片中的所有数据并返回它们。

相关问题