0

我需要您对我的项目的 Redis 数据类型提出建议。该项目是一个 torrent-tracker ( ruby, simple sinatra-based),具有纯内存数据存储,用于存储有关节点的当前信息。我觉得这就是 Redis 的用途。但我坚持为此选择合适的数据类型。现在我倾向于以下设置:

  1. 用于list播种机。实际上,我最好需要一个环形缓冲区来获取一系列播种机(具有给定的大小和起始位置)并为下次保存新的起始位置。

  2. 用于sorted set水蛭。每个 leecher 的得分是这样的downloaded/(downloaded+left),所以我还可以为任何特定情况提取一个范围。

set 和 list 中的所有字符串值都是对等数据的字符串(编码)表示。

我在上面的设置中实际上缺少的是:

  1. 需要为播种机存储偏移量,因此数据访问需要同步。

  2. 在列表中查找特定播种机的未知方法。在这里我可能会从中受益,set但我将无法一次提取一系列项目。

  3. (一般问题)集合/列表成员需要 TTL(如果客户端在此之前关闭而未发送任何数据)。可能的选项是使每个peer字符串键/值(字符串或哈希),给它TTL,订阅销毁并在相应的列表或集合中删除它。

你有什么建议?有什么实用的建议吗?

4

0 回答 0