1. 程式人生 > 程式設計 >php操作redis常見方法示例【key與value操作】

php操作redis常見方法示例【key與value操作】

本文例項講述了php操作redis常見方法。分享給大家供大家參考,具體如下:

關於key的操作:

1、獲取所有key,不包括值;

$redis ->keys("*");

2、獲取一個或多個key的值,【不限制資料型別】;

$redis ->mget([$key1,$key2]);//引數為陣列;

3、設定指定key的生命週期;

$redis ->expire($key,30);//設定生命週期為30秒;

4、獲取指定key的剩餘生命週期;

$redis->tTl($key);

關於value的操作:

1、string型別

$key = 'user';
$redis->delete($key); 
$redis ->set($key,'11');
$redis ->setNx($key,3);//當$key不存在時設定才生效;如果存在則值仍然不變;
$redis ->decr($key);//當$key的值是數字時可以通過該方法自減1
$redis ->incr($key);//當$key的值是數字時可以通過該方法自增1
$redis ->delete($key);//刪除指定鍵值
$redis ->getMultiple ([$key,'lx']);//獲取多個鍵對應的值 返回值:返回包含所有鍵的值的陣列
$redis ->get($key);//獲取指定key的值
$redis ->exists($key);//判斷鍵是否存在

2、list連結串列

$key = 'user';
$redis ->delete($key); //每次進來刪除$key資料 用於測試
$redis ->lPush($key,1);//從列表頭部新增元素
$redis ->rPush($key,2);//從列表尾部新增元素
$redis ->rPush($key,4);
$redis ->lPush($key,4); 
$redis ->lPop($key); 從連結串列頭部刪除一個元素,並且返回這個元素的值,由於這個特性是的list非常適合做高併發秒殺
$redis ->lRemove($key,2,3);//刪除$key中的2這個值,最多刪除三個都為2的值;
$redis ->lSet($key,30);//將下標為2的元素設定為30;返回值:成功返回查詢的值,失敗false
$redis ->lGet($key,0);//獲取指定下標的值 返回值:成功返回查詢的值,失敗false
$redis ->lTrim($key,1);//擷取保留前兩個值,返回值:成功返回查詢的值,失敗false;一般配合lGetRange使用
$redis ->lGetRange($key,-1);//獲取所有list連結串列中$key的所有值【值可以重複】 返回值:成功返回查詢的值,失敗false
$redis ->lLen ($key);//統計元素個數 同$redis ->lsize ($key)一樣 返回值:成功返回查詢的值,失敗false

個人總結:誰最後lpush說明第一個元素為誰;誰最後一個rpush代表最後一個元素為誰;

3、set集合 【和list不同的是set不允許有同樣的值】

$key1 = 'user1';
$key2 = 'user2';
$redis->delete($key1);
$redis->delete($key2);
$redis ->sAdd($key1,'2');//為一個鍵新增一個值 返回值:成功返回true,失敗false
$redis ->sAdd($key1,'1');
$redis ->sAdd($key2,'2');
$redis ->sAdd($key2,'3');
$redis ->sRemove($key,'1');//刪除指定值 返回值:成功返回true,失敗false
$redis ->sContains($key1,'3');//判斷$key1中是否有指定值 返回值:成功返回true,失敗false
$redis ->sSize($key1);//返回集合中儲存值的數量 返回值:成功返回陣列個數,失敗0
$redis ->sPop($key1);//隨機移除並返回key中的一個值 返回值:成功返回刪除的值,失敗false
$redis ->sUnion($key2,$key1);//返回所有指定鍵的並集 返回值:成功返回合併後的集,失敗false
$redis ->sInterStore ('user3',$key2,$key1);//執行sInter命令並把結果儲存到新建的集合中 返回值:成功返回,交集的個數,失敗false
$redis ->sInter($key1,$key2);//返回兩個指定集合的交集 返回值:成功返回陣列交集,失敗false
$redis ->sUnionStore('user3',$key1);//執行sunion命令並把結果儲存到新建的變數中 返回值:成功返回,交集的個數,失敗false 
$redis ->sMembers($key1);//獲取集合內所有值
$redis ->sisMember ($key1,2);//如果成員元素2是集合$key1,的成員返回1,如果成員元素不是集合的成員,或key不存在返回0
$redis ->sDiffstore('user3',$key1,$key2);//執行sdiff命令並把結果儲存到新建的變數中。返回值:成功返回數字,失敗false
$redis ->sdiff($key1,$key2);//返回第一個集合中存在並在第二個集合中不存在的結果 返回值:成功返回陣列,失敗false 返回值:成功返回交集的個數,失敗false 
$redis ->sort($key1);//當集合內都為數值時返回排序之後的結果 只要有一個值不是數值都不返回結果
$redis ->sCard($key1);//返回SET容器的成員數

4、hash物件 【可以理解為每一個key代表一條資料,同資料庫中的行一樣】

$key1 = 'user';
$key2 = 'user1';
$redis ->delete($key1);
$redis ->hSet($key1,'name','lx');//hash中每一個key對應一個或者多個鍵值對;就好比mysql中的欄位和值;而$key類似一條資料
$redis ->hSet($key1,'age','保密');
$redis ->hSet($key1,'sex','男');
$redis ->hMGet($key2,['name','age']);//獲得雜湊表中多個 key 的值
$redis ->hMSet($key2,['name'=>'lx','age'=>27]);//給雜湊表設定多個key的值
$redis ->hVals($key1);//獲得雜湊表中所有的值 順序是隨機的
$redis ->hKeys($key1);//獲得雜湊表中所有的key 順序是隨機的
$redis ->hDel($key1,'user1');//刪除一個表中指定的key,如果hash表不存在或對應的key不存在,返回false
$redis ->hLen($key1);//哈表中key的數量說白了就是記錄的條數和資料庫中的行一樣
$redis ->hGet($key1,'user2');
$redis ->hSetNx($key1,'user2','lx');//當雜湊表中不存在某key時,給該key設定一個值
$redis ->hExists($key1,'user1');//檢查雜湊key是否存在 返回值:存在返回 true,不存在返回 false
$redis ->hGetAll($key2);// 獲得一個雜湊表中所有的key和value
$redis ->hIncrByFloat($key1,'user3',3.5);//給雜湊表中某key增加一個浮點數值,前提是key中已存在的值必須是數值型別
$redis ->hIncrBy($key1,3);//給雜湊表中某key增加一個整數值,前提是key中已存在的值必須是數值型別

更多關於PHP相關內容感興趣的讀者可檢視本站專題:《php+redis資料庫程式設計技巧總結》、《php面向物件程式設計入門教程》、《PHP基本語法入門教程》、《PHP陣列(Array)操作技巧大全》、《php字串(string)用法總結》、《php+mysql資料庫操作入門教程》及《php常見資料庫操作技巧彙總》

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