分頁按頁碼讀取redis資料
<?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];
}
相關文章
- 利用redis快取熱門資料,分頁的一種思路Redis快取
- SQL資料分頁SQL
- redis實現像關係型資料庫一樣按條件高效查詢分頁Redis資料庫
- 數字按鈕分頁CSS樣式程式碼CSS
- [轉]讀取webBrowser中網頁程式碼Web網頁
- 資料分頁說明
- ASP資料分頁方法
- 實現分頁顯示資料[並按關鍵字查詢]
- Puppeteer爬取網頁資料網頁
- GAT新Bug:點選分頁按鈕頁面沒變
- SQL - 常用資料庫分頁SQL資料庫
- PHP 使用 Redis 實現分頁PHPRedis
- layui 資料表格重新載入資料分頁器回到第一頁UI
- 「無程式碼」高效的爬取網頁資料神器網頁
- SQL Server 2005資料頁讀取--高階掃描SQLServer
- 線上直播原始碼,java資料分頁幾種方式原始碼Java
- 重寫 API 資源分頁資料API
- 靜態頁分頁功能js程式碼JS
- 爬取多個頁面的資料
- .NET之頁面資料快取快取
- 使用陣列建立分頁資料陣列
- easy ui datagrid 資料分頁UI
- 爬取網頁後的抓取資料_3種抓取網頁資料方法網頁
- 程式碼 ajax分頁
- php分頁程式碼PHP
- 讀寫分離 & 分庫分表 & 深度分頁
- 版本12.5.2,分頁取資料的sql怎麼寫?(轉載)SQL
- 直播軟體原始碼,java資料分頁幾種方式原始碼Java
- Sliverlight DataGrid 分頁 資料庫中分頁,速度更快資料庫
- XML建立可排序、分頁的資料顯示頁面(轉)XML排序
- 海量資料的分頁怎麼破?
- PHP 原生操作 Mysql 分頁資料案例PHPMySql
- thinkPHP 分頁後如何處理資料PHP
- mysql分頁-limit offset分頁MySqlMIT
- 分頁元件原始碼分享元件原始碼
- asp.net使用母版頁中使用ajax指令碼取資料ASP.NET指令碼
- 在SSH框架下按條件分頁查詢框架
- 菜鳥問題:請問jsp分頁和資料庫分頁哪個好啊?JS資料庫