我们有一个基于问题在哪里主页我们显示2列表
- 按日期修改的问题
- 问题有更大的意见和ANS计数。 而在这两种房源,如果问题有相同的观点或ANS计数则排序是基于日期。
以前我很直接quiring MySQL数据库和获取的值,所以很容易。 但是,每个页面请求击打到MySQL是有点贵,然后开始做缓存。
我开始使用Redis的。 以下是情况下,当我使用Redis的缓存
问题之一是对第二上市,我必须显示由票问题,并没有回答结合起来。 我怎么能存储这类数据在Redis的排序与基于2个条件票有时间来加载速度更快,ANS与时间算?
您可以使用Redis的有序集合。 您的看法或回答次数可以是分数。 创建基于时间戳的关键。 有序set方法zrevrangebyscore会给你正确的顺序。
你可以设置你的有序集合的成员:
'YEAR_MONTH_DATE_HOUR_MINUTE_SECONDS:question_id'
这样,如果你排序,以同样的比分的问题,将在字典顺序返回。 如果你使用zrevrangebyscore里面传来以后这样的问题将放在更高。
您可以创建一个哈希表映射时间戳和question_id。 更快的查找
我问过类似的问题,在这里我也定意的解决方案。 我想不同的东西,但它会做的正是你想要的。
Redis的zrevrangebyscore,排序比字典顺序等