分頁按頁碼讀取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];
}
相關文章
- Lavarel Ajax 分頁時 獲取分頁資訊
- redis實現像關係型資料庫一樣按條件高效查詢分頁Redis資料庫
- 資料分頁說明
- Puppeteer爬取網頁資料網頁
- WebMagic抓取 table分頁資料, table分頁時,URL不變Web
- python 自定義資料分頁Python
- php迴圈讀取txt裡面關鍵詞並按頁數PHP
- 「無程式碼」高效的爬取網頁資料神器網頁
- PHP 使用 Redis 實現分頁PHPRedis
- layui 資料表格重新載入資料分頁器回到第一頁UI
- 001-urllib讀取網頁網頁
- 重寫 API 資源分頁資料API
- 使用陣列建立分頁資料陣列
- 線上直播原始碼,java資料分頁幾種方式原始碼Java
- 直播軟體原始碼,java資料分頁幾種方式原始碼Java
- 讀寫分離 & 分庫分表 & 深度分頁
- python爬取58同城一頁資料Python
- TP5 搜尋按條件分頁
- asp.net使用母版頁中使用ajax指令碼取資料ASP.NET指令碼
- thinkPHP 分頁後如何處理資料PHP
- 海量資料的分頁怎麼破?
- PHP 原生操作 Mysql 分頁資料案例PHPMySql
- mysql分頁-limit offset分頁MySqlMIT
- 分頁元件原始碼分享元件原始碼
- 想獲取JS載入網頁的源網頁的原始碼,不想獲取JS載入後的資料JS網頁原始碼
- flask 分頁 | 翻頁Flask
- jQuery入門(七)jQuery實現按鈕分頁jQuery
- 關於黑馬旅遊網的實現 --- 分頁查詢功能,點選分頁碼不顯示資料
- SAP Spartacus home 頁面讀取 product 資料的請求的 population 邏輯
- QWebView獲取網頁原始碼WebView網頁原始碼
- Asp.Net分頁生成頁碼超連結方法ASP.NET
- 大量資料如何做分頁處理
- python實現資料分頁小練習Python
- 19 ##### 屬性方法案例-資料分頁
- Oracle資料庫中的分頁查詢Oracle資料庫
- 在分頁物件資料上追加屬性物件
- MyBatis(八) 資料庫BLOB讀寫、批量更新操作、儲存過程呼叫、分表、分頁MyBatis資料庫儲存過程
- Mybatis原始碼分析(七)自定義快取、分頁的實現MyBatis原始碼快取
- Postman模擬瀏覽器網頁請求並獲取網頁資料Postman瀏覽器網頁