优化4个排序集

时间:2014-04-10 07:41:35

标签: optimization memory-management data-structures redis sortedlist

我目前正在使用Redis作为Mongo数据库的时间排序索引。我的mongo文档看起来像这样:

{ 
    _id : MongoId,
    title : "Title",
    publishDate : new Date().getTime(),
    attachments : [
        { 
            title : "Title",
            type : "VIDEO"
        },
        { 
            title : "Title",
            type : "PHOTO"
        },
        { 
            title : "Title",
            type : "LINK"
        }
    ]
}

附件中可以包含0到3个项目。 (没有附件,只有链接/仅视频/唯一照片,2种不同类型,3种不同类型)

每次将文档添加到Mongo时,它都会自动添加到Redis中的有序集中 publishDate(unix timestamp)用作分数,MongoId用作有序集成员。密钥的名称为“monitor:latest:feed”

如果附件数组包含链接,我会使用“monitor:latest:feed:links”键将相同的成员添加到已排序的列表中。视频/照片也一样。

结果是我有4个按时间排序的Redis列表。 列表被称为:

  • “monitor:latest:feed”包含mongodb中的所有文档ID。
  • “monitor:latest:feed:links”包含所有带有类型链接附件的文档ID。
  • “monitor:latest:feed:photos”包含所有带有照片类型附件的文档ID。
  • “monitor:latest:feed:video”包含所有带有视频类型附件的文档ID。

有没有办法可以删除最后3个有序集或使用其他一些在Redis中占用更少内存的数据结构?请记住,我仍然需要以某种方式按时间排序的成员。

0 个答案:

没有答案