我有大量的记录,我只使用分页显示部分。哪个好。由于我有很多页面,我在每一页都得到了重视,有没有一个tecnique来避免这个?
我有一个redis作为会话商店和postgres数据库。
我在考虑在会话中保存查询结果计数(我只有一个搜索页面)。
我确信这种情况经常发生在长期这样做的人身上。
可以做些什么来优雅地解决这个问题? (不要计算每一页的数量)
答案 0 :(得分:0)
您可以使用无限滚动。这就是Facebook使用的主要网站。
http://railscasts.com/episodes/114-endless-page-revised?view=asciicast
答案 1 :(得分:0)
使用sorted_set存储您的记录,您可以使用限制从特定索引中获取记录。
答案 2 :(得分:0)
使用Postgres表triggers中的NOTIFY和LISTEN以及单独的服务器端进程(例如python脚本)。
使您的redis数据保持最新,确保处理回滚交易。
您可以使用redis ZSET(有序集)存储易于分页的索引'。 如果您有多种订购数据的方法,您可以使用实际数据获得HSET,您可以通过ID从ZSET引用该数据。 在redis Lua脚本中,您可以在一次使用ZSET ID收集HSET数据的调用中获得快速结果。
亲切的问候,TW