分页按页码读取redis数据
来源:互联网 发布:egress软件 编辑:程序博客网 时间:2024/05/29 16:47
<?php
/**
* 按指定页码查找列表(按页码分页)
* @param string $key_list redis KEY
* @param int $page 指定的页码
* @param int $pagesize 查找数量
* @param string $order 排序规则 desc:倒序 asc:升序
* @return array
*/
public static function forum_redis_get_sort_sets_list_v1($key_list, $page, $pagesize = 10, $order='desc')
{
$listlen = self::Redis()->executeCommand('ZCARD',[$key_list]);
$page = $page>1 ? $page : 1 ;
//注:正序读取时第一页起始位置是$start=0 倒序读取时第一页起始位置是$start=-1
$start = intval(($page-1)*$pagesize+1);
$end = intval(($page-1)*$pagesize + $pagesize);
//是否有下一页 默认1(有下一页)
$status = 1;
//最后一页
$start = -$start;
$end = -$listlen;
$id_list = self::Redis()->executeCommand('ZRANGE',[$key_list, $end,$start]);
$status = 0;
}else{
$start = -$start;
$end = -$end;
$id_list = self::Redis()->executeCommand('ZRANGE',[$key_list, $end, $start]);
}
$id_list = array_reverse($id_list);
//最后一页
//$start = $start;
$end = $listlen;
$id_list = self::Redis()->executeCommand('ZRANGE',[$key_list,$start, $end]);
$status = 0;
}else{
//正序读取 $start 从0开始
$start = 0;
$id_list = self::Redis()->executeCommand('ZRANGE',[$key_list,$start, $end]);
}
}
return ['list' => $id_list, 'status' => $status, 'total' => $listlen];
}
/**
* 按指定页码查找列表(按页码分页)
* @param string $key_list redis KEY
* @param int $page 指定的页码
* @param int $pagesize 查找数量
* @param string $order 排序规则 desc:倒序 asc:升序
* @return array
*/
public static function forum_redis_get_sort_sets_list_v1($key_list, $page, $pagesize = 10, $order='desc')
{
$listlen = self::Redis()->executeCommand('ZCARD',[$key_list]);
$page = $page>1 ? $page : 1 ;
//注:正序读取时第一页起始位置是$start=0 倒序读取时第一页起始位置是$start=-1
$start = intval(($page-1)*$pagesize+1);
$end = intval(($page-1)*$pagesize + $pagesize);
//是否有下一页 默认1(有下一页)
$status = 1;
if ($order=='desc'){
//倒序
//最后一页
$start = -$start;
$end = -$listlen;
$id_list = self::Redis()->executeCommand('ZRANGE',[$key_list, $end,$start]);
$status = 0;
}else{
$start = -$start;
$end = -$end;
$id_list = self::Redis()->executeCommand('ZRANGE',[$key_list, $end, $start]);
}
$id_list = array_reverse($id_list);
}else{
//正序
//最后一页
//$start = $start;
$end = $listlen;
$id_list = self::Redis()->executeCommand('ZRANGE',[$key_list,$start, $end]);
$status = 0;
}else{
//正序读取 $start 从0开始
$start = 0;
$id_list = self::Redis()->executeCommand('ZRANGE',[$key_list,$start, $end]);
}
}
return ['list' => $id_list, 'status' => $status, 'total' => $listlen];
}
1 0
- 分页按页码读取redis数据
- 分页页码
- 分页页码
- Redis存储分页数据
- redis缓存分页数据
- 分页读取数据
- 获取数据库中某条数据在分页时的页码
- logstash 读取 Redis 数据
- 4 Springboot中使用redis存储集合数据,并模拟条件查询、分页读取
- 分页:页码显示javascript
- GridView分页页码
- 仿网页分页页码
- 分页页码显示算法
- 【MVC分页】页码
- 分页页码显示算法
- js分页页码
- 分页页码制作
- 前端分页拼接页码
- jzoj P1507【普及模拟】数列
- send函数何时返回
- sqlmap 用户手册(续)
- 年份信息查询程序
- 基类指针和派生类指针
- 分页按页码读取redis数据
- Eclipse怎么汉化?(附汉化包下载链接版)
- CCF2014-09-3字符串匹配
- 国科大软件安全漏洞分析与发现第一次作业key2和key3
- 搬瓦工vps搭建wordpress
- CentOS-7设置开机进入文本界面(不进入图形界面)
- hbase学习2
- js 控制div 居中
- Java中Comparable和Comparator接口区别分析