请教缓存数据排序问题

chunbin0220 发布于 2012/07/30 21:50
阅读 588
收藏 0

一个新闻列表数据,可以按照时间排序,也可以按照点击率排序,还可以按照优先级排序显示。

请问如果需要给这个新闻列表缓存的话,是不是要按3种排序规则,建3个缓存?还是建一个缓存,再分别处理缓存排序?

希望大家给点建议。

加载中
0
Andre.Z
Andre.Z
缓存排序后的数据。
0
chunbin0220
chunbin0220

谢谢 Andre.Z。

但是这样多一种排序规则,缓存数据岂不是就要加一倍?

有没有一种缓存,提供数据排序方法的?或者其他更好实现的方法的?

0
Andre.Z
Andre.Z

引用来自“chunbin0220”的答案

谢谢 Andre.Z。

但是这样多一种排序规则,缓存数据岂不是就要加一倍?

有没有一种缓存,提供数据排序方法的?或者其他更好实现的方法的?

如果要能做到数据排序,那么势必要缓存所有的数据。而且,对于数据的排序和分页,也是耗时间的。

而实际上,一般用户对于列表,也就只会看前面部分啥的。

数据量大的情况下,结合用户行为习惯,缓存排序后的数据,所占用的空间,会远远小于缓存所有未排序的数据。

如果对于实时性要求不高,那就上lucene好了,缓存都能省了。

0
xinzaibing
xinzaibing
请参考数据库的非聚簇索引实现方法
0
freish
freish

用三种,每次访问都无需排序,是用空间换时间

用一种,每次都要排序,是用时间换空间

0
sxgkwei
sxgkwei
很明显全部拉到内存中,然后去排序不现实,以为数据肯定很多,显示肯定有分页,不同的排序要显示的第一页明显不同的,所以你最好还是挨着缓存多个排序的吧。
0
z
zhitang

不知道这些京东、凡客等电子商务网站的分类页面是怎么实现的。

 

0
透过玻璃的光
透过玻璃的光

如果用lucene,solr,sphinx之类的东西处理一下的话,然后加上缓存一起处理,就会少上很多问题了。

缓存主要是为了减轻数据库压力,提高查询速度的,这些检索系统完全符合要求。

返回顶部
顶部