php操作redis常見(jiàn)方法示例【key與value操作】
本文實(shí)例講述了php操作redis常見(jiàn)方法。分享給大家供大家參考,具體如下:
關(guān)于key的操作:
1、獲取所有key,不包括值;
$redis ->keys("*");
2、獲取一個(gè)或多個(gè)key的值,【不限制數(shù)據(jù)類(lèi)型】;
$redis ->mget([$key1,$key2]);//參數(shù)為數(shù)組;
3、設(shè)置指定key的生命周期;
$redis ->expire($key,30);//設(shè)置生命周期為30秒;
4、獲取指定key的剩余生命周期;
$redis->tTl($key);
關(guān)于value的操作:
1、string類(lèi)型
$key = 'user'; $redis->delete($key); $redis ->set($key,'11'); $redis ->setNx($key,3);//當(dāng)$key不存在時(shí)設(shè)置才生效;如果存在則值仍然不變; $redis ->decr($key);//當(dāng)$key的值是數(shù)字時(shí)可以通過(guò)該方法自減1 $redis ->incr($key);//當(dāng)$key的值是數(shù)字時(shí)可以通過(guò)該方法自增1 $redis ->delete($key);//刪除指定鍵值 $redis ->getMultiple ([$key,'lx']);//獲取多個(gè)鍵對(duì)應(yīng)的值 返回值:返回包含所有鍵的值的數(shù)組 $redis ->get($key);//獲取指定key的值 $redis ->exists($key);//判斷鍵是否存在
2、list鏈表
$key = 'user'; $redis ->delete($key); //每次進(jìn)來(lái)刪除$key數(shù)據(jù) 用于測(cè)試 $redis ->lPush($key,1);//從列表頭部添加元素 $redis ->rPush($key,2);//從列表尾部添加元素 $redis ->rPush($key,4); $redis ->lPush($key,4); $redis ->lPop($key); 從鏈表頭部刪除一個(gè)元素,并且返回這個(gè)元素的值,由于這個(gè)特性是的list非常適合做高并發(fā)秒殺 $redis ->lRemove($key,2,3);//刪除$key中的2這個(gè)值,最多刪除三個(gè)都為2的值; $redis ->lSet($key,2,30);//將下標(biāo)為2的元素設(shè)置為30;返回值:成功返回查找的值,失敗false $redis ->lGet($key,0);//獲取指定下標(biāo)的值 返回值:成功返回查找的值,失敗false $redis ->lTrim($key,0,1);//截取保留前兩個(gè)值,返回值:成功返回查找的值,失敗false;一般配合lGetRange使用 $redis ->lGetRange($key,0,-1);//獲取所有l(wèi)ist鏈表中$key的所有值【值可以重復(fù)】 返回值:成功返回查找的值,失敗false $redis ->lLen ($key);//統(tǒng)計(jì)元素個(gè)數(shù) 同$redis ->lsize ($key)一樣 返回值:成功返回查找的值,失敗false
個(gè)人總結(jié):誰(shuí)最后lpush說(shuō)明第一個(gè)元素為誰(shuí);誰(shuí)最后一個(gè)rpush代表最后一個(gè)元素為誰(shuí);
3、set集合 【和list不同的是set不允許有同樣的值】
$key1 = 'user1'; $key2 = 'user2'; $redis->delete($key1); $redis->delete($key2); $redis ->sAdd($key1,'2');//為一個(gè)鍵添加一個(gè)值 返回值:成功返回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);//返回集合中存儲(chǔ)值的數(shù)量 返回值:成功返回?cái)?shù)組個(gè)數(shù),失敗0 $redis ->sPop($key1);//隨機(jī)移除并返回key中的一個(gè)值 返回值:成功返回刪除的值,失敗false $redis ->sUnion($key2,$key1);//返回所有指定鍵的并集 返回值:成功返回合并后的集,失敗false $redis ->sInterStore ('user3',$key2,$key1);//執(zhí)行sInter命令并把結(jié)果儲(chǔ)存到新建的集合中 返回值:成功返回,交集的個(gè)數(shù),失敗false $redis ->sInter($key1,$key2);//返回兩個(gè)指定集合的交集 返回值:成功返回?cái)?shù)組交集,失敗false $redis ->sUnionStore('user3',$key2,$key1);//執(zhí)行sunion命令并把結(jié)果儲(chǔ)存到新建的變量中 返回值:成功返回,交集的個(gè)數(shù),失敗false $redis ->sMembers($key1);//獲取集合內(nèi)所有值 $redis ->sisMember ($key1,2);//如果成員元素2是集合$key1,的成員返回1,如果成員元素不是集合的成員,或key不存在返回0 $redis ->sDiffstore('user3',$key1,$key2);//執(zhí)行sdiff命令并把結(jié)果儲(chǔ)存到新建的變量中。返回值:成功返回?cái)?shù)字,失敗false $redis ->sdiff($key1,$key2);//返回第一個(gè)集合中存在并在第二個(gè)集合中不存在的結(jié)果 返回值:成功返回?cái)?shù)組,失敗false 返回值:成功返回交集的個(gè)數(shù),失敗false $redis ->sort($key1);//當(dāng)集合內(nèi)都為數(shù)值時(shí)返回排序之后的結(jié)果 只要有一個(gè)值不是數(shù)值都不返回結(jié)果 $redis ->sCard($key1);//返回SET容器的成員數(shù)
4、hash對(duì)象 【可以理解為每一個(gè)key代表一條數(shù)據(jù),同數(shù)據(jù)庫(kù)中的行一樣】
$key1 = 'user'; $key2 = 'user1'; $redis ->delete($key1); $redis ->hSet($key1,'name','lx');//hash中每一個(gè)key對(duì)應(yīng)一個(gè)或者多個(gè)鍵值對(duì);就好比mysql中的字段和值;而$key類(lèi)似一條數(shù)據(jù) $redis ->hSet($key1,'age','保密'); $redis ->hSet($key1,'sex','男'); $redis ->hMGet($key2,['name','age']);//獲得哈希表中多個(gè) key 的值 $redis ->hMSet($key2,['name'=>'lx','age'=>27]);//給哈希表設(shè)置多個(gè)key的值 $redis ->hVals($key1);//獲得哈希表中所有的值 順序是隨機(jī)的 $redis ->hKeys($key1);//獲得哈希表中所有的key 順序是隨機(jī)的 $redis ->hDel($key1,'user1');//刪除一個(gè)表中指定的key,如果hash表不存在或?qū)?yīng)的key不存在,返回false $redis ->hLen($key1);//哈表中key的數(shù)量說(shuō)白了就是記錄的條數(shù)和數(shù)據(jù)庫(kù)中的行一樣 $redis ->hGet($key1,'user2'); $redis ->hSetNx($key1,'user2','lx');//當(dāng)哈希表中不存在某key時(shí),給該key設(shè)置一個(gè)值 $redis ->hExists($key1,'user1');//檢查哈希key是否存在 返回值:存在返回 true, 不存在返回 false $redis ->hGetAll($key2);// 獲得一個(gè)哈希表中所有的key和value $redis ->hIncrByFloat($key1,'user3',3.5);//給哈希表中某key增加一個(gè)浮點(diǎn)數(shù)值,前提是key中已存在的值必須是數(shù)值類(lèi)型 $redis ->hIncrBy($key1,'user3',3);//給哈希表中某key增加一個(gè)整數(shù)值,前提是key中已存在的值必須是數(shù)值類(lèi)型
更多關(guān)于PHP相關(guān)內(nèi)容感興趣的讀者可查看本站專(zhuān)題:《php+redis數(shù)據(jù)庫(kù)程序設(shè)計(jì)技巧總結(jié)》、《php面向?qū)ο蟪绦蛟O(shè)計(jì)入門(mén)教程》、《PHP基本語(yǔ)法入門(mén)教程》、《PHP數(shù)組(Array)操作技巧大全》、《php字符串(string)用法總結(jié)》、《php+mysql數(shù)據(jù)庫(kù)操作入門(mén)教程》及《php常見(jiàn)數(shù)據(jù)庫(kù)操作技巧匯總》
希望本文所述對(duì)大家PHP程序設(shè)計(jì)有所幫助。
相關(guān)文章
php實(shí)現(xiàn)連接access數(shù)據(jù)庫(kù)并轉(zhuǎn)txt寫(xiě)入的方法
這篇文章主要介紹了php實(shí)現(xiàn)連接access數(shù)據(jù)庫(kù)并轉(zhuǎn)txt寫(xiě)入的方法,涉及php連接、讀取access數(shù)據(jù)庫(kù)及寫(xiě)入txt文件的相關(guān)操作技巧,需要的朋友可以參考下2017-02-02php實(shí)現(xiàn)購(gòu)物車(chē)功能(以大蘋(píng)果購(gòu)物網(wǎng)為例)
本文主要介紹了php實(shí)現(xiàn)購(gòu)物車(chē)功能(以大蘋(píng)果購(gòu)物網(wǎng)為例)的實(shí)現(xiàn)方法,具有很好的參考價(jià)值。下面跟著小編一起來(lái)看下吧2017-03-03PHP實(shí)現(xiàn)變色驗(yàn)證碼實(shí)例
驗(yàn)證碼想必大家都有見(jiàn)到過(guò)吧,在本文為大家介紹下PHP如何實(shí)現(xiàn)變色驗(yàn)證碼,感興趣的朋友可以參考下2014-01-01