redis 清空db下_PHP操作redis實現的分頁列表

37c41e76d0955989a323fd257f76368a.png正文內容

封裝類文件如下:243615bbefad25dec45749bcbc5ee82f.png

/*
* 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);

5e2cf7f3975d69d100849882caa1797e.png

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/528924.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/528924.shtml
英文地址,請注明出處:http://en.pswp.cn/news/528924.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

php5.1.4,apache 2.2.2 + PHP5.1.4 不能運行的解_php

apache 2.2.2 php5.1.4 不能運行的解決辦法.問題,使用傳統的模塊化方法安裝PHP5.1.* apache 2.2.2 后不能啟動,提示:"Cannot load C:/php/php5apache2.dll into server: The specified module could not be found."原因:PHP壓縮包里的php5apache2.dll只適用于apach…

python3中的zip_Python3實現將文件歸檔到zip文件及從zip文件中讀取數據的方法

Created on Dec 24, 2012將文件歸檔到zip文件,并從zip文件中讀取數據author: liury_lab# 壓縮成zip文件from zipfile import * #UnusedWildImportimport osmy_dir d:/中華十大名帖/myzip ZipFile(d:/中華十大名帖.zip, w, ZIP_DEFLATED)for file_name in os.listd…

java mariadb 使用,java連接mariaDB的設置,java連接mariadb

java連接mariaDB的設置,java連接mariadbjava連接mariaDB數據庫的設置:(tomcat 8)第一種方法:使用tomcat自帶的mysql-connector-java-5.1.40-bin.jarjava代碼中的設置:driver驅動類為:com.mysql.jdbc.Driverurl為&#…

python產品發布會_【Mac系統 + Python + Django】之開發一個發布會系統【Django模型(三)】...

上一部分給大家介紹Django的視圖。接下來繼續來了解Django框架,來看第三部分,此部分是對數據庫的操作。目錄:一、設計系統表            返回目錄首先打開sign/models.py,通過模型完成標的創建:from djang…

java 保留字符串,如何在Java中保留字符串而不使用反轉功能

有以下幾種在Java中反轉字符串的方法:使用for循環使用While循環使用靜態方法使用For循環使用for循環在Java中反轉字符串的示例在下面的示例中, 我們使用了for循環來反轉字符串。 for循環執行直到條件i> 0變為false為止。import java.util.Scanner;class ReverseS…

python增刪改查csv文件_Python增刪改查文件

#!/usr/bin/env python# -*- coding:utf-8 -*-# author:Erik Chan# datetime:2018/12/27 9:29# software: PyCharmimport os# 獲取當前文件的父目錄文件夾DIR os.path.dirname(os.path.abspath(__file__))cwd os.getcwd() #獲取當前目錄即dir目錄下print(cwd)# 創建添加一個文…

php 模塊 遠程,ThinkPHP遠程調用模塊的操作方法 URL 參數格式

* 遠程調用模塊的操作方法 URL 參數格式 [項目://][分組/]模塊/操作* param string $url 調用地址* param string|array $vars 調用參數 支持字符串和數組* param string $layer 要調用的控制層名稱* return mixedfunction R($url,$varsarray(),$layer‘‘) {$info pathinfo($…

python3 csv 讀入數組_如何將CSV數據讀入NumPy中的記錄數組?

我建議read_csv函數的pandas圖書館:import pandas as pddfpd.read_csv(myfile.csv, sep,,headerNone)df.valuesarray([[ 1. , 2. , 3. ],[ 4. , 5.5, 6. ]])DataFrame是一種具有潛在不同類型列的二維標記數據結構.你可以把它想象成一個電子表格或SQL表.我也建議…

php用cdn打不開,開啟 CDN 后 wordpress 后臺打不開的解決辦法

現在很多站長把網站放到國外,使用 CDN 加速功能提高國內的訪問速度,前面提到過開啟騰訊云 CDN 后 wordpress 后臺顯示:連接被重置的解決辦法,而今天遇到的是另外一種情況,有時候會遇到開啟 CDN 后 wordpress 后臺打不開…

android 支付寶月賬單 統計圖_記賬其實很簡單,用微信、支付寶就夠了!

用微信、支付寶記賬,從起告別糊涂賬養成記賬的好習慣,能讓你對生活中的各種收支做到心中有數,從此告別糊涂賬。長期堅持,能幫助我們理性消費、科學理財。但或許是因為記賬的過程太枯燥,或許是因為沒找到合適的記賬方法…

mysql抖動可能的原因,12 | 為什么我的MySQL會“抖”一下?

你的 SQL 語句為什么變“慢”了平時執行很快的更新操作,其實就是在寫內存和日志,而 MySQL 偶爾“抖”一下的那個瞬間,可能就是在刷臟頁(flush)。當內存數據頁跟磁盤數據頁內容不一致的時候,我們稱這個內存頁為“臟頁”。內存數據寫…

怎樣快速畫出一個正方體_圖形與幾何---正方體

一.概念描述現代數學:正方體亦稱立方體。它是一種正多面體。即棱長相等的長方體,因此亦稱正六面體,如下圖。小學數學:2007年北京版教材第10冊的第3頁指出:長、寬、高都相等的長方體叫作正方體(也叫作立方體…

python argvparser_Python ArgumentParse的subparser用法說明

在寫一些很小的機器學習項目的時候,我們往往希望training, testing和inference能共用一個入口main,但是不同的功能使用不同的input參數.當然如果三個功能對應三個.py腳本問題也不大,但是畢竟覺得不太優雅.這個時候就需要考慮如何讓代碼更加簡單有條理.主要是最近在看parser有關…

python生成器函數(generator),python3學習筆記:生成器generator

簡單了解下生成器generator,主要是yield的返回值和send的傳參,記錄下。生成器的基本屬性generator 函數 yield簡單說,就是一個函數,里面用到了關鍵字yield,就成為了一個生成器生成器和函數的不同主要在于&#xff1a…

復旦微電子fpga數據手冊_專注FPGA圖像加速領域 深維科技跨入發展快車道

日前,在2019賽靈思開發者大會(美洲站)上,深維科技正式面向全球發布ThunderImage三款重磅圖像加速產品:全球最快的JPEG2JPEG縮略圖方案、超高性能的JPEG2WebP轉碼方案及世界級超高密度算力的JPEG2JPEG縮略圖方案。新產品一經發布立即“技驚”四…

oracle Blob保存方式,關于文件保存到Oracle中BLOB字段的方法及例子

關于文件保存到Oracle中BLOB字段的方法及例子-------------------------------------------public class FileOpClass{public static byte[] GetFileStream(string filepath){byte[] byteArray null;FileStream fs null;try{fs new FileStream(filepath, FileMode.Open);lon…

python 調c++生成的dll 中識別char *_基于tensorflow 實現端到端的OCR:二代身份證號識別...

最近在研究OCR識別相關的東西,最終目標是能識別身份證上的所有中文漢字數字,不過本文先設定一個小目標,先識別定長為18的身份證號,當然本文的思路也是可以復用來識別定長的驗證碼識別的。 本文實現思路主要來源于Xlvector的博客&a…

php友價商城手游,2019年T5友價商城網站程序-偽靜態規則

# Version 3.1.0.73RewriteEngine on#RewriteBase /RewriteRule vip(.*) /shop/view.php?str$1RewriteRule ^(.*)/search(.*).html /$1/index.php?str$2RewriteRule ^(.*)/goods([0-9]*).html /$1/goods.php?id$2RewriteRule ^(.*)/(.*)list(.*).html /$1/$2list.php?str$3…

oracle 的跨天查詢,考勤跨天如何統計 - Oracle開發 - ITPUB論壇-中國專業的IT技術社區...

本帖最后由 yaksha1 于 2020-9-11 17:29 編輯請問下,目前正在統計每個人每天考勤數據是否正常,上班打一次卡,下班打一次卡,算是正常。打卡情況大致分兩種,一種是正常白班,朝九晚五,一種是跨天&a…

php程序員學什么語言好就業_2019年初中畢業生學什么專業好?學什么專業好就業?...

前言:據了解,目前我國職業人才缺口較大,市場供需不平衡。許多學生往往還沒畢業,就已經與企業簽訂了就業協議。因此,有許多家長愿意把小孩子送到專業學校進行就讀。畢竟可以學的一門好專業,對學生將來的路是…