php操作redis實(shí)例
每次用PHP再操作redis時(shí)都要找手冊或百度一下,為方便以后查找把php操作redis的方法和使用示例統(tǒng)一的整理在這篇文章里,以后就不用反反復(fù)復(fù)的百度了
首先php使用redis需要安裝php的redis擴(kuò)展:
安裝成功后,可以在phpinfo()查看安裝的redis擴(kuò)展的版本號(hào)
String操作
代碼示例
$redis->setOption(Redis::OPT_PREFIX, 'hf_');//設(shè)置表前綴為hf_ $redis->set('key', 1);//設(shè)置key=aa value=1 [true] $redis->ttl('key1'); //查詢生存時(shí)間,持久化的返回-1,有生存時(shí)間的返回時(shí)間(單位秒) $redis->expire('key', 10);//設(shè)置失效時(shí)間[true | false] $redis->expireAt('x', time() + 3);//key存活到一個(gè)unix時(shí)間戳?xí)r間 $redis->persist('key');//移除生存時(shí)間到期的key 如果key到期 true 如果不到期 false $redis->mset(array('key0' => 'value0', 'key1' => 'value1'));//設(shè)置一個(gè)或多個(gè)鍵值[true] $redis->setnx('key', 'value');//key=value,key存在返回false[|true] $redis->get('key');//獲取key [value] $redis->mget($arr);//(string|arr),返回所查詢鍵的值 $redis->del($key_arr);//(string|arr)刪除key,支持?jǐn)?shù)組批量刪除【返回刪除個(gè)數(shù)】 $redis->delete($key_str, $key2, $key3);//刪除keys,[del_num] $redis->getset('old_key', 'new_value');//先獲得key的值,然后重新賦值,[old_value | false] $redis->strlen('key');//獲取當(dāng)前key的長度 $redis->append('key', 'string');//把string追加到key現(xiàn)有的value中[追加后的個(gè)數(shù)] $redis->incr('key');//自增1,如不存在key,賦值為1(只對整數(shù)有效,存儲(chǔ)以10進(jìn)制64位,redis中為str)[new_num | false] $redis->incrby('key', $num);//自增$num,不存在為賦值,值需為整數(shù)[new_num | false] $redis->decr('key');//自減1,[new_num | false] $redis->decrby('key', $num);//自減$num,[ new_num | false] $redis->setex('key', 10, 'value');//key=value,有效期為10秒[true] $redis->setex('testkey', 60, 'testval');//testkey=testval,有效期為60秒[true] $redis->keys('*'); //遍歷所有的鍵名
Hash操作
代碼示例
//為hash表中的字段賦值。成功返回1,失敗返回0。若hash表不存在會(huì)先創(chuàng)建表再賦值,若字段已存在會(huì)覆蓋舊值。 $ret = $redis->hSet('user', 'realname', 'jetwu'); //獲取hash表中指定字段的值。若hash表不存在則返回false。 $ret = $redis->hGet('user', 'realname'); //查看hash表的某個(gè)字段是否存在,存在返回true,否則返回false。 $ret = $redis->hExists('user', 'realname'); //刪除hash表的一個(gè)字段,不支持刪除多個(gè)字段。成功返回1,否則返回0。 $ret = $redis->hDel('user', 'realname'); //同時(shí)設(shè)置某個(gè)hash表的多個(gè)字段值。成功返回true。 $ret = $redis->hMset('user', ['name' => 'jet', 'age' => 18]); //同時(shí)獲取某個(gè)hash表的多個(gè)字段值。其中不存在的字段值為false。 $ret = $redis->hMget('user', ['name', 'age']); //獲取某個(gè)hash表所有的字段和值。 $ret = $redis->hGetAll('user'); //獲取某個(gè)hash表所有字段名。hash表不存在時(shí)返回空數(shù)組,key不為hash表時(shí)返回false。 $ret = $redis->hKeys('user'); //獲取某個(gè)hash表所有字段值。 $ret = $redis->hVals('user'); //為hash表中不存在的字段賦值。若hash表不存在則先創(chuàng)建,若字段已存在則不做任何操作。設(shè)置成功返回true,否則返回false。 $ret = $redis->hSetNx('user', 'realname', 'jetwu'); //獲取某個(gè)hash表的字段數(shù)量。若hash表不存在返回0,若key不為hash表則返回false。 $ret = $redis->hLen('user'); //為hash表中的指定字段加上指定增量值,若增量值為負(fù)數(shù)則相當(dāng)于減法操作。若hash表不存在則先創(chuàng)建,若字段不存在則先初始化值為0再進(jìn)行操作,若字段值為字符串則返回false。設(shè)置成功返回字段新值。 $ret = $redis->hIncrBy('user', 'age', 10); //為hash表中的指定字段加上指定浮點(diǎn)數(shù)增量值。 $ret = $redis->hIncrBy('user', 'age', 1.5);
Redis List(列表) 操作
//在list列表頭部插入一個(gè)值 '1‘ ,如果'test'列表不存在則自動(dòng)創(chuàng)建此列表。 $redis->lPush('test','1'); //在list列表尾部插入一個(gè)值'2‘ ,如果'test'列表不存在則自動(dòng)創(chuàng)建此列表。 $redis->rPush('test','2'); //用于將一個(gè)值('1')插入到已存在的列表尾部(最右邊)。如果列表不存在,操作無效 返回列表的長度 $redis->rPushx('test','1'); //用于將一個(gè)值('1')插入到已存在的列表頭部,如果列表不存在,操作無效 返回列表的長度 $redis->lPushx('test','1'); //移除并返回列表的第一個(gè)元素,當(dāng)'test‘不存在或?yàn)榭諘r(shí)返回false $redis->lPop('test'); //移除并返回列表的尾部最后一個(gè)元素,當(dāng)'test‘不存在或?yàn)榭諘r(shí)返回false $redis->rPop('test'); //取出并刪除列表第一個(gè)元素,如果沒有元素則阻塞等待5秒或到可取出元素為止。 $redis->blPop('test',5); //取出并刪除列表最后一個(gè)元素,如果沒有元素則阻塞等待5秒或到可取出元素為止。 $redis->brPop('test',5); //移除test列表的最后一個(gè)元素,并將該元素添加到test2列表并返回 失敗返回false $redis->rpoplpush('test','test2'); //移除test列表的最后一個(gè)元素,并將該元素添加到test2列表并返回 如果列表沒有元素則會(huì)阻塞列表5秒,直到超時(shí)或有可取元素,超時(shí)返回false $redis->brpoplpush('test', 'test2', 5); //返回列表長度 $redis->lLen('test'); //獲取索引為1的列表中的元素,失敗返回false $redis->lIndex('test',1); //設(shè)置test列表索引為1的值為'1‘,失敗返回false $redis->lSet('test',1,'1'); //在列表的元素前或者后插入元素。當(dāng)指定元素不存在于列表中時(shí),不執(zhí)行任何操作。 // \Redis::BEFORE 插入元素之后 \Redis::AFTER 插入元素之前 //當(dāng)列表不存在時(shí),被視為空列表,不執(zhí)行任何操作。如果 key 不是列表類型,返回一個(gè)錯(cuò)誤。 $redis->lInsert('test', \Redis::AFTER,'a','1'); //移除列表中與參數(shù) VALUE ('1‘) 相等的元素 //count 可選范圍: //count > 0 : 從表頭開始向表尾搜索,移除與 VALUE 相等的元素,數(shù)量為 COUNT 。 //count < 0 : 從表尾開始向表頭搜索,移除與 VALUE 相等的元素,數(shù)量為 COUNT 的絕對值。 //count = 0 : 移除表中所有與 VALUE 相等的值 $redis->lRem('test','1',-1); //對一個(gè)列表進(jìn)行修剪(trim),就是說,讓列表只保留指定區(qū)間內(nèi)的元素,不在指定區(qū)間之內(nèi)的元素都將被刪除 //下標(biāo) 0 表示列表的第一個(gè)元素,以 1 表示列表的第二個(gè)元素,以此類推。 你也可以使用負(fù)數(shù)下標(biāo),以 -1 表示列表的最后一個(gè)元素, -2 表示列表的倒數(shù)第二個(gè)元素,以此類推 $redis->lTrim('test',1,5); //返回列表中指定區(qū)間內(nèi)的元素,區(qū)間以偏移量 START 和 END 指定。 // 其中 0 表示列表的第一個(gè)元素, 1 表示列表的第二個(gè)元素,以此類推。 你也可以使用負(fù)數(shù)下標(biāo),以 -1 表示列表的最后一個(gè)元素, -2 表示列表的倒數(shù)第二個(gè)元素,以此類推 $redis->lRange('test',0,10);
到此這篇關(guān)于php操作redis實(shí)例的文章就介紹到這了,更多相關(guān)php操作redis內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
關(guān)于PHP中Session文件過多的問題及session文件保存位置
PHP的默認(rèn)機(jī)制:每一次php請求,會(huì)有1/100的概率(默認(rèn)值)觸發(fā)“session回收”。接下來通過本文給大家介紹關(guān)于PHP中Session文件過多的問題及session文件保存位置,需要的朋友參考下2016-03-03php中的explode()函數(shù)實(shí)例介紹
在本篇文章里小編給大家分享了關(guān)于php中的explode()函數(shù)實(shí)例知識(shí)點(diǎn)內(nèi)容,有興趣的朋友們學(xué)習(xí)下。2019-01-01使用php發(fā)送有附件的電子郵件-(PHPMailer使用的實(shí)例分析)
本篇文章介紹了使用php發(fā)送有附件的電子郵件-(PHPMailer使用的實(shí)例分析)需要的朋友參考下2013-04-04Ubuntu 16.04中Laravel5.4升級(jí)到5.6的步驟
這篇文章主要給大家介紹了關(guān)于在Ubuntu 16.04中Laravel5.4升級(jí)到5.6的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧2018-12-12PHP7使用ODBC連接SQL Server2008 R2數(shù)據(jù)庫示例【基于thinkPHP5.1框架】
這篇文章主要介紹了PHP7使用ODBC連接SQL Server2008 R2數(shù)據(jù)庫,結(jié)合實(shí)例形式分析了基于thinkPHP5.1框架使用ODBC連接SQL Server2008數(shù)據(jù)庫相關(guān)操作技巧,需要的朋友可以參考下2019-05-05用PHP寫的MySQL數(shù)據(jù)庫用戶認(rèn)證系統(tǒng)代碼
用PHP寫的MySQL數(shù)據(jù)庫用戶認(rèn)證系統(tǒng)代碼...2007-03-03YII動(dòng)態(tài)模型(動(dòng)態(tài)表名)支持分析
這篇文章主要介紹了YII動(dòng)態(tài)模型(動(dòng)態(tài)表名)支持,分析了動(dòng)態(tài)模型的原理并結(jié)合實(shí)例形式給出了相關(guān)使用方法,需要的朋友可以參考下2016-03-03