一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - PHP教程 - PHP操作redis實現的分頁列表,新增,刪除功能封裝類與用法示例

PHP操作redis實現的分頁列表,新增,刪除功能封裝類與用法示例

2019-09-16 16:21燈火cj闌珊 PHP教程

這篇文章主要介紹了PHP操作redis實現的分頁列表,新增,刪除功能封裝類與用法,結合實例形式分析了php針對redis數據庫基本的連接、查詢、添加、分頁等操作封裝與使用技巧,需要的朋友可以參考下

本文實例講述了PHP操作redis實現的分頁列表,新增,刪除功能封裝類與用法。分享給大家供大家參考,具體如下:

<?php
/*
 * redis 分頁數據類庫
 */
class redisPage{
  protected $_redis;
  protected $_redis_ip = '127.0.0.1'; //ip
  protected $_redis_port = 6379; //端口
  protected $_redis_db = 0; //數據庫號
  protected $_hash_prefix = 'my_data'; //前綴名稱
  public function __construct($ip='',$port='',$db='',$hash_prefix=''){
    if($ip != '') $this->_redis_ip = $ip;
    if($port != '') $this->_redis_port = $port;
    if($db != '') $this->_redis_db = $db;
    if($hash_prefix != '') $this->_hash_prefix = $hash_prefix;
    $this->_redis = new Redis();
    $this->_redis->connect($this->_redis_ip, $this->_redis_port);
    $this->_redis->select($this->_redis_db);
  }
  /*
   * 添加記錄
   * @param $id id
   * @param $data hash數據
   * @param $hashName Hash 記錄名稱
   * @param $SortName Redis SortSet 記錄名稱
   * @param $redis Redis 對象
   * @return bool
   */
  public function set_redis_page_info($id,$data){
    if(!is_numeric($id) || !is_array($data)) return false;
    $hashName = $this->_hash_prefix.'_'.$id;
    $this->_redis->hMset($hashName, $data);
    $this->_redis->zAdd($this->_hash_prefix.'_sort',$id,$id);
    return true;
  }
  /*
   * 獲取分頁數據
   * @param $page 當前頁數
   * @param $pageSize 每頁多少條
   * @param $hashName Hash 記錄名稱
   * @param $SortName Redis SortSet 記錄名稱
   * @param $redis Redis 對象
   * @param $key 字段數組 不傳為取出全部字段
   * @return array
   */
  public function get_redis_page_info($page,$pageSize,$key=array()){
    if(!is_numeric($page) || !is_numeric($pageSize)) return false;
    $limit_s = ($page-1) * $pageSize;
    $limit_e = ($limit_s + $pageSize) - 1;
    $range = $this->_redis->ZRANGE($this->_hash_prefix.'_sort',$limit_s,$limit_e); //指定區間內,帶有 score 值(可選)的有序集成員的列表。
    $count = $this->_redis->zCard($this->_hash_prefix.'_sort'); //統計ScoreSet總數
    $pageCount = ceil($count/$pageSize); //總共多少頁
    $pageList = array();
    foreach($range as $qid){
      if(count($key) > 0){
        $pageList[] = $this->_redis->hMGet($this->_hash_prefix.'_'.$qid,$key); //獲取hash表中所有的數據
      }else{
        $pageList[] = $this->_redis->hGetAll($this->_hash_prefix.'_'.$qid); //獲取hash表中所有的數據
      }
    }
    $data = array(
      'data'=>$pageList, //需求數據
      'page'=>array(
        'page'=>$page, //當前頁數
        'pageSize'=>$pageSize, //每頁多少條
        'count'=>$count, //記錄總數
        'pageCount'=>$pageCount //總頁數
      )
    );
    return $data;
  }
  /*
   * 刪除記錄
   * @param $id id
   * @param $hashName Hash 記錄名稱
   * @param $SortName Redis SortSet 記錄名稱
   * @param $redis Redis 對象
   * @return bool
   */
  public function del_redis_page_info($id){
    if(!is_array($id)) return false;
    foreach($id as $value){
      $hashName = $this->_hash_prefix.'_'.$value;
      $this->_redis->del($hashName);
      $this->_redis->zRem($this->_hash_prefix.'_sort',$value);
    }
    return true;
  }
  /*
   * 清空數據
   * @param string $type db:清空當前數據庫 all:清空所有數據庫
   * @return bool
   */
  public function clear($type='db'){
    if($type == 'db'){
      $this->_redis->flushDB();
    }elseif($type == 'all'){
      $this->_redis->flushAll();
    }else{
      return false;
    }
    return true;
  }
}
//數據庫
$host='localhost';
$user='root';
$psd='';
$dbname='china';
$link = @mysql_connect($host,$user,$psd);
mysql_select_db($dbname,$link);
mysql_query("set names utf8");
$SQL = "SELECT * FROM js_collection_node order by nodeid asc limit 100 ";
$query = mysql_query($SQL);
$redis = new redisPage('127.0.0.1',6379,0,'collection_node'); //實例化對象
$redis->clear(); //測試清空數據
while($info = mysql_fetch_assoc($query)){
  $redis->set_redis_page_info($info['nodeid'],$info); //插入數據
}
$redis->del_redis_page_info(array(61)); //刪除數據
$data = $redis->get_redis_page_info(1,10,array('nodeid','name')); //獲取分頁數據
print_r($data);
?>

希望本文所述對大家PHP程序設計有所幫助。

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 国产精品嫩草影院在线看 | 国产福利不卡视频 | 亚洲免费在线看 | 亚洲黄色片免费看 | 色香视频在线 | 美女扒开腿让男人桶爽动态图片 | 精品一久久香蕉国产线看播放 | 日韩在线视频免费观看 | 久久日韩精品无码一区 | 亚洲成人在线播放 | 日本xxx片免费高清在线 | 日韩毛片高清在线看 | 国产成人免费 | 丝袜兔女郎被啪在线观看91 | 国产露脸对白刺激3p在线 | chinese高中生gay男同 | 草莓污污 | 久久免费观看视频 | 金莲你下面好紧夹得我好爽 | 国产首页精品 | 欧亚专线欧洲m码可遇不可求 | 72张让男人一看就硬的图片 | 日本一道高清不卡免费 | 丁香婷婷在线视频 | 韩国三级在线播放 | 日本啊v在线观看 | 久久综合视频网站 | 国产成人亚洲影视在线 | 日韩在线观看一区二区不卡视频 | 视频在线观看入口一二三2021 | 欧美精品日韩 | 国模娜娜一区二区三区 | 91porn最新网址| 色狠狠成人综合网 | 国产人va在线 | 国产资源免费观看 | 国产精品毛片高清在线完整版 | 视频一区在线观看 | 欧美国产精品 | 国产精品亚洲精品日韩已方 | 欧美日韩高清一区 |