现在我有大约1亿个属于许多类别的帖子,现在我正在尝试使用redis存储帖子的查看次数和下载次数。
但我不知道应该使用哪种数据结构来满足我的要求:
我想根据查看次数或下载次数获得一个用户的帖子
我想根据查看次数或下载次数获得一个类别的帖子
我认为一个数据结构无法满足我的要求。那么最好的预测是什么?
谢谢:)
答案 0 :(得分:2)
我想根据查看次数或下载次数获得一个用户的帖子
每位用户需要两个有序集。一个用于观看帖子,一个用于下载帖子。
我希望按观看次数或下载次数获得一个类别的帖子
同样的事情。每个类别保留两个排序集。一个用于观看,一个用于下载。
那就是说,为什么你需要使用Redis呢?是否绝对有必要(阅读:您需要如此高的速度/吞吐量)将所有这些信息存储在Redis的内存中吗?考虑将其存储在像Mongo这样的内存+磁盘数据存储区中,并使用Redis缓存顶级结果。同样,这完全取决于您的需求,但我猜您不需要在Redis中保留很少访问的用户或类别的底部。记忆力很贵。