redis 分页

来源:互联网 发布:js遍历table中的tr 编辑:程序博客网 时间:2024/05/29 17:53

很多新手对redis 数据库不熟悉,觉得 它的分页无法下手,其实很简单的。以下是我写的类,供参考。


一、连接数据库(详细代码就不写了)

public function __construct() {
$this->redis = RedisConnect::getRedisInstance ()->getRedisConn ();
}



二、取出数据,按时间排序

public function compreTime($a, $b) {
return $b ['newdate'] - $a ['newdate'];
}
public function getallcomprenew() {
$user = $_SESSION ['userinfo'] ['user'];
$allkey = $this->redis->keys ( NEWPRE . "*" );
$newmaginfo = array ();
foreach ( $allkey as $value ) {

$ruser = $this->redis->hget ( $value, user );
if ($ruser == $user) {
$use ['user'] = $this->redis->hget ( $value, user );
$use ['title'] = $this->redis->hget ( $value, title );
$use ['content'] = $this->redis->hget ( $value, content );
$use ['newdate'] = $this->redis->hget ( $value, newdate );
$use ['value'] = $value;
$newmaginfo [] = $use;
}
}
usort ( $newmaginfo, array (
shownew,
compreTime 
) );
return $newmaginfo;
}


三、哈哈,开始分页了,其实分页是仿照mysql 分页的原理。
首先需要两个参数,当前页($page),每页显示的数量($pagesize),
其次需要了解分页的算法,$start=($page-1)*$pagesize; $end=$start+$pagesize;
最主要是要找到循环的起始位置,以及最终位置,循环取出数组。
public function newpage($page, $pagesize) {
$shownew = new shownew ();
$newinfo = $shownew->getallcomprenew ();
$pagecount=count($newinfo);
$start = ($page - 1) * $pagesize;
$newpage = array ();
for($i = $start; $i <$start+$pagesize; $i ++) {
$newpage [] = $newinfo [$i];
}
return array($newpage,$pagecount);
}



                                             
0 0
原创粉丝点击