1. 程式人生 > >淺談php的快取機制之redis

淺談php的快取機制之redis

適合剛學習redis的讀讀,直接上程式碼吧,全是基礎,全有註釋

<?php 
$redis = new redis();
$redis->connect('127.0.0.1', 6379);
//設定twjteststring
$redis->setex('twjteststring','300','test string title content');
$twjteststring = $redis->get('twjteststring');
echo 'string<br/>';
print_r($twjteststring);
echo "<hr/><br/>";
//設定hash
echo 'hash<br/>';
$redis->hSet('testhash','name','twj');
$redis->hSet('testhash','age',25);
//刪除testhash中的age
$redis->hDel('testhash','age');
$redis->hSetNx('testhash','age',24);//如果已經存在,則不操作。若未設定,則賦值
//hMset可以直接設定陣列,陣列中如果存在已經定義的元素,會覆蓋掉
$redis->hMset('testhash',array('sex'=>'男','home'=>'山東省武松打虎故鄉','name'=>'twj2'));
$redis->hSet('testhash','home','山東省');
echo $redis->zCount('testhash',0,3);
//hMget可以根據多個鍵取對應的值,返回值是鍵值形式的陣列
$hashnamesex = $redis->hMget('testhash',array('name','age'));
print_r($hashnamesex);
//根據特定單個鍵取值
$hashname = $redis->hGet('testhash','name');
echo $hashname."<br/>";
//取出所有的鍵
$hashallkey = $redis->hKeys('testhash');
print_r($hashallkey);
//取出所有的值
$hashallvalue = $redis->hVals('testhash');
print_r($hashallvalue);
//hgetall獲取hash的鍵值
$hasharr = $redis->hgetall('testhash');
print_r($hasharr);
echo "<hr/><br/>";
//$redis->delete('testhash');//刪除testhash
//與資料庫關聯
$mysql = new PDO("mysql:host=localhost;dbname=blog","root","",array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8")); 
$rs = $mysql -> query("select title,content from tbl_post limit 10");
$i=0;
while($row = $rs -> fetch()){
    $rows[$i]['title']=$row['title'];
    $rows[$i]['content']=$row['content'];
    $i=$i+1;
}
$redisrows = json_encode($rows);
$redis->setex('blog','300',$redisrows);
$blog = $redis->get('blog');
print_r(json_decode($blog));
//$redis->delete('blog');
$redis->hSet('blog2','data',$redisrows);
$blog2 = $redis->hGet('blog2','data');
print_r(json_decode($blog2));
$redis->expire('testhash',300);
$redis->expire('blog2',300);//過期時間
//$redis->delete('blog2');
//$redis->delete('testhash');
//$redis->delete('blog2');
//zset與hash結合使用比較方便
$redis->zAdd('zset',0,'test0content');
$redis->zAdd('zset',1,'test1content');
$redis->zAdd('zset',3,'test3content');
$redis->zAdd('zset',2,'test2content');
$redis->zAdd('zset',4,'test4content');//zAdd(key,score,value)score只能為數字,當value相同時候,會覆蓋掉score
$zset = $redis->zRange('zset',0,2);//返回zadd陣列
echo '<br/><hr/>zset';
print_r($zset);
//$redis->delete('zset');
?>
對於那些用windows的wamp整合環境沒有裝上redis的也可以找我。

聯絡qq:274501366

程式碼很基礎,轉載請註明。

相關推薦

php快取機制redis

適合剛學習redis的讀讀,直接上程式碼吧,全是基礎,全有註釋 <?php $redis = new redis(); $redis->connect('127.0.0.1', 6379); //設定twjteststring $redis->setex

瀏覽器快取機制

前文 在前端開發中,效能一直都是被大家所重視的一點,然而判斷一個網站的效能最直觀的就是看網頁開啟的速度。其中提高網頁反應速度的一個方式就是使用快取。一個優秀的快取策略可以縮短網頁請求資源的距離,減少延遲,並且由於快取檔案可以重複利用,還可以減少頻寬,降低網路負荷。 快取過程分析 由此可

PHP-----垃圾回收機制

前言 大多數程式語言都會有自身的垃圾回收機制,php也不例外。經常聽很多人說gc,也就是垃圾回收器,全程為Garbage Collection。 在php5.3之前,是不包括垃圾回收機制的,也沒有專門的垃圾回收器,實現垃圾回收就是簡單判斷一下變數的zval的refcoun

多執行緒鎖的機制

Java中鎖的機制 synchronized–Java語言的關鍵字,當它用來修飾一個方法或者一個程式碼塊的時候,能夠保證在同一時刻最多隻有一個執行緒執行該段程式碼。 當兩個併發執行緒訪問同一個物件Object中的這個synchronized同步程式碼塊時,

Android開發垃圾回收機制GC以及如何用好GC

一、為什麼需要GC 應用程式對資源操作,通常簡單分為以下幾個步驟: 1、為對應的資源分配記憶體 2、初始化記憶體 3、使用資源 4、清理資源 5、釋放記憶體 應用程式對資源(記憶體使用)管理的方式,常見的一般有如下幾種: 1、手動管理:C,C++ 2、計數管理:COM 3、自動管理:.NET,Java,PH

利用同步機制解決Java中的線程安全問題

顯示 重要 false 希望 運行程序 obj balance urn 什麽 我們知道大多數程序都不會是單線程程序,單線程程序的功能非常有限,我們假設一下所有的程序都是單線程程序,那麽會帶來怎樣的結果呢?假如淘寶是單線程程序,一直都只能一個一個用戶去訪問,你要在網上買東西還

ISO協議棧OSI七層模型

osi一、開放系統互連參考模型 (Open System Interconnect 簡稱OSI)是國際標準化組織(ISO)和國際電報電話咨詢委員會(CCITT)聯合制定的開放系統互連參考模型,為開放式互連信息系統提供了一種功能結構的框架。它從低到高分別是:物理層、數據鏈路層、網絡層、傳輸層、會話層、表示層和應

PHP中的數組和JS中的數組

例如 val pan exe png strong name 我們 sso 最近在做前後端對接的時候,遇到一個問題,前端要求返回的數據格式是左邊的,但是我通過json_encode返回到的數據格式是右邊的 註意:數據格式從"[]"(數組)變成了"{}"(對象)

php錯誤提示及查錯方法

error 設置斷點 bugs notice -- 語法 打開 tin 開始 php有哪幾種錯誤提示 1.notice : 註意 2.waring : 警告 3.error : 錯誤 PHP中都有哪幾種查錯方法? 1、語法檢查--php配置文件裏,把錯誤顯示選項都打開或者代

js設計模式發布 — 命令模式

刪除 常見 設計程序 體會 span 一個 發送 正在 是什麽 命令模式最常見的應用場景是:有時候需要向某些對象發送請求,但是並不知道請求的接收者是誰,也不知道被請求的操作是什麽。此時希望用一種松耦合的方式來設計程序,使得請求發送者和請求接收者能夠消除彼此之間的耦合關系。

垃圾回收機制

並不會 調用 bag c++經典 跟蹤 行為 回收 過程 垃圾 C/C++經典垃圾回收算法 1. 引用計數法: 每個對象計算指向它的指針數量 當有一個指針指向自己時數值加1 當刪除一個指向自己的指針時計數減1 如果減為0,說明已經不存在指向該對象的指針了,所以可以安

php 抽象類abstract和接口interface

存在 應用場景 進行 聯系 常量 多個 上啟 以及 能夠 一、抽象類(abstract) 抽象類定義的規範 1、php5支持抽象類和抽象方法 2、定義得抽象類無法被實例化 3、任何一個類裏面聲明了抽象方法,那麽這個類必須聲明為抽象類 4、被定義得抽象方法只能聲明其調用方式(

java放射機制

bject bootstrap pan voc get set class文件 獲得 訪問 java反射機制概念: 用途:JAVA反射機制是在運行狀態中,對於任意一個類,都能夠知道這個類的所有屬性和方法;對於任意一個對象,都能夠調用它的任意方法和屬性;這種動態獲取

數據庫存儲過程

urn 數據 優化 tables named varchar 權限 def 來看 什麽是存儲過程 如果你接觸過其他的編程語言,那麽就好理解了,存儲過程就像是方法一樣。竟然他說方法那麽他就有類似的方法名,方法要傳遞的變量和返回結果,所以存儲過程有存儲過程名有存儲過程參數也有返

PHP遞歸的理解(遞歸聽起來很高端的詞匯 其實就是兩次循環)

通過 UNC ret fun array row 子元素 原生 次循環 $data = [ [‘pid‘=>0,‘id‘=>1], [‘pid‘=>1,‘id‘=>2], [‘pid‘=>3,‘id‘=>4],

PHP

        這篇部落格分三個部分陳述,分別是PHP程序管理器、PHP啟動流程和PHP優化。           談到PHP程序管理器,不得不講下它的進化過程,CGI--->FastCGI---

HTTP快取

寫在前面:最近學習了修言同學的小冊,受益良多。對於HTTP快取這一塊,經過資料查詢和思考,也有了自己的一些思考認識,希望分享出來與大家一起討論和成長。 內容概述 什麼是快取及快取的優點 快取的處理步驟 強快取和協商快取 快取決策 總結與思考 一、快取及其優點 快取

PHP 擴充套件支援 redis

       在很多企業中,不管是 LNMP 架構,還是 LAMP 架構,都會通過redis做資料快取,而主要因素就是,redis 對資料的存取都是在記憶體中進行,因此,對資料的處理速度相對硬碟來說,快樂佈置一個數量級,今天,我們就來講一下關閉 php r

PHP面向物件程式設計(九)

9.0 設計模式   在編寫程式時經常會遇到一此典型的問題或需要完成某種特定需求,設計模式就是針對這些問題和需求,在大量的實踐中總結和理論化之後優選的程式碼結構程式設計風格,以及解決問題的思考方式。 設計模式就像是經典的棋譜。不同的棋局,使用不同的棋諧,免得自己再去思考和模索。本節將針對PHP應用程式

PHP面向物件程式設計(五)

5.0 繼承   5.1 繼承的概念      在現實生活中,繼承一般指的是子女繼承父輩的財產。在程式中,繼承描述的是事物之間的所屬關係,通過繼承可以使許多事物之間形成一種關係體系 。     例如貓和狗都屬於動物,程式中便可以描述為貓和