redis实现分页

实现方式

  1. 使用有序集合zadd
  2. 使用hash存储具体的数据
  3. 取数据通过有序集合的zrevrange—倒叙 zrange—正序

代码案例

比如,现在我们要对新闻表news做查询分页,我们按照新闻添加时间add_time正序或者倒叙排列

// 添加数据
// $redis redis实例 不多说
// $add_time 文章添加时间
// $id 文章id
// $news 文章内容
// 如果想根据文章id排序,第二个参数也用$id即可
$redis->zAdd('news', $add_time, $id);
$redis->hMset('news:id:' . $id , $news);


// 分页处理
// $page 页码
// $pageNumber 一页展示条数

$start = ($page - 1) * $pageNumber;
$end = $start + $pageNumber -1;
$data = $redis->zRange('news', $start, $end);//zRevRange
$total = $redis->zCard('news');// 总条数
$list = array();
foreach($data as $key => $value){
        $list[] = $redis->hgetall('news:id:' . $value);// 每条新闻具体数据
}
$result['total'] = $total;
$result['list'] = $pageList;
$result['pageNumber'] = $pageNumber;
$result['page'] = $page;
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值