0

我们有问题基于我们在主页中显示 2 列表的位置

  1. 按日期修改的问题
  2. 问题有更大的观点和答案。在这两个列表中,如果问题具有相同的视图或计数,则排序是基于日期的。

以前我直接查询 MySQL 数据库并获取值,所以很容易。但是每个页面请求都打到 MySQL 它有点贵然后开始做缓存。

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

问题是在第二个列表中,我必须通过投票显示问题,而不是结合起来回答。我如何将这种类型的数据存储在 redis 中,以便通过基于 2 个条件投票与时间和 ans 随时间计数的排序更快地加载?

4

1 回答 1

1

您可以在 redis 中使用排序集。您的视图或答案计数可以是分数。根据时间戳创建密钥。排序集方法 zrevrangebyscore 将为您提供正确的顺序。

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

'YEAR_MONTH_DATE_HOUR_MINUTE_SECONDS:question_id'

这样,如果您排序,相同分数的问题将按字典顺序返回。如果您使用 zrevrangebyscore,那么稍后出现的问题将被放置得更高。

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

我问了一个类似的问题,在那里我也有一个解决方案。我想要一些不同的东西,但它会做你想要的。

Redis zrevrangebyscore,排序以外的字典顺序

于 2012-10-13T15:33:56.630 回答