一尘不染

选择数据类型的Redis建议

redis

我们有疑问,根据我们在主页上显示2个列表的位置

  1. 修改日期之前的问题
  2. 问题有更大的见解和答案。并且在这两个清单中,如果问题有相同的观点或答案,则排序基于日期。

以前,我直接查询MySQL数据库并获取值,因此很容易。但是每个页面请求到达MySQL都有点昂贵,然后开始进行缓存。

我开始使用Redis。以下是我使用Redis缓存的情况

问题在第二个清单上,我必须以投票方式显示问题,而不能回答合并问题。我如何将这种类型的数据存储在Redis中以通过基于2个条件的时间投票和ANS时间计数的排序更快地加载?


阅读 533

收藏
2020-06-20

共1个答案

一尘不染

您可以在redis中使用排序集。您的观看次数或答案数可以作为分数。根据时间戳创建密钥。排序设置方法zrevrangebyscore将为您提供正确的顺序。

您可以将您的排序集成员设置为:

'YEAR_MONTH_DATE_HOUR_MINUTE_SECONDS:question_id'

这样,如果您对具有相同分数的问题进行排序,将以字典顺序返回。如果您使用zrevrangebyscore,那么以后出现的问题将放在较高的位置。

您可以创建一个哈希映射来映射时间戳和question_id。快速查找

我问了一个类似的问题,在此我还提出了一个解决方案。我想要一些不同的东西,但它会完全按照您的要求进行。

2020-06-20