30個(gè)php操作redis常用方法代碼例子

redis這個(gè)新產(chǎn)品在sns時(shí)很火典阵,而memcache早就存在昭卓, 但redis提供出來的功能花吟,好多網(wǎng)站均把它當(dāng)memcache使用,這是大才小用们颜,這兒有30個(gè)方法來使用redis,值得了解猎醇。

這篇文章主要介紹了30個(gè)php操作redis常用方法代碼例子,本文其實(shí)不止30個(gè)方法,可以操作string類型窥突、list類型和set類型的數(shù)據(jù),需要的朋友可以參考下

redis的操作很多的,以前看到一個(gè)比較全的博客硫嘶,但是現(xiàn)在找不到了阻问。查個(gè)東西搜半天,下面整理一下php處理redis的例子沦疾,個(gè)人覺得常用一些例子称近。下面的例子都是基于php-redis這個(gè)擴(kuò)展的。

1哮塞,connect

描述:實(shí)例連接到一個(gè)Redis.

參數(shù):host: string刨秆,port: int

返回值:BOOL 成功返回:TRUE;失敗返回:FALSE

示例:

<?php

connect('127.0.0.1', 6379);

var_dump($result); //結(jié)果:bool(true)

?>

2,set

描述:設(shè)置key和value的值

參數(shù):Key Value

返回值:BOOL 成功返回:TRUE;失敗返回:FALSE

示例:

<?php

$result = $redis->set('test',"11111111111");

var_dump($result);? ? //結(jié)果:bool(true)

?>

3忆畅,get

描述:獲取有關(guān)指定鍵的值

參數(shù):key

返回值:string或BOOL 如果鍵不存在衡未,則返回 FALSE。否則家凯,返回指定鍵對(duì)應(yīng)的value值缓醋。

范例:

<?php

$result = $redis->get('test');

var_dump($result);? //結(jié)果:string(11) "11111111111"

?>

4,delete

描述:刪除指定的鍵

參數(shù):一個(gè)鍵绊诲,或不確定數(shù)目的參數(shù)送粱,每一個(gè)關(guān)鍵的數(shù)組:key1 key2 key3 … keyN

返回值:刪除的項(xiàng)數(shù)

范例:

<?php

$redis->set('test',"1111111111111");

echo $redis->get('test');? //結(jié)果:1111111111111

$redis->delete('test');

var_dump($redis->get('test'));? //結(jié)果:bool(false)

?>

5,setnx

描述:如果在數(shù)據(jù)庫中不存在該鍵掂之,設(shè)置關(guān)鍵值參數(shù)

參數(shù):key value

返回值:BOOL 成功返回:TRUE;失敗返回:FALSE

范例:

<?php

$redis->set('test',"1111111111111");

$redis->setnx('test',"22222222");

echo $redis->get('test');? //結(jié)果:1111111111111

$redis->delete('test');

$redis->setnx('test',"22222222");

echo $redis->get('test');? //結(jié)果:22222222

?>

6抗俄,exists

描述:驗(yàn)證指定的鍵是否存在

參數(shù)key

返回值:Bool 成功返回:TRUE;失敗返回:FALSE

范例:

<?php

$redis->set('test',"1111111111111");

var_dump($redis->exists('test'));? //結(jié)果:bool(true)

?>

7,incr

描述:數(shù)字遞增存儲(chǔ)鍵值鍵.

參數(shù):key value:將被添加到鍵的值

返回值:INT the new value

實(shí)例:

<?php

$redis->set('test',"123");

var_dump($redis->incr("test"));? //結(jié)果:int(124)

var_dump($redis->incr("test"));? //結(jié)果:int(125)

?>

8世舰,decr

描述:數(shù)字遞減存儲(chǔ)鍵值橄镜。

參數(shù):key value:將被添加到鍵的值

返回值:INT the new value

實(shí)例:

<?php

$redis->set('test',"123");

var_dump($redis->decr("test"));? //結(jié)果:int(122)

var_dump($redis->decr("test"));? //結(jié)果:int(121)

?>

9,getMultiple

描述:取得所有指定鍵的值冯乘。如果一個(gè)或多個(gè)鍵不存在洽胶,該數(shù)組中該鍵的值為假

參數(shù):其中包含鍵值的列表數(shù)組

返回值:返回包含所有鍵的值的數(shù)組

實(shí)例:

<?php

$redis->set('test1',"1");

$redis->set('test2',"2");

$result = $redis->getMultiple(array('test1','test2'));

print_r($result);? //結(jié)果:Array ( [0] => 1 [1] => 2 )

?>

10,lpush

描述:由列表頭部添加字符串值。如果不存在該鍵則創(chuàng)建該列表姊氓。如果該鍵存在丐怯,而且不是一個(gè)列表,返回FALSE翔横。

參數(shù):key,value

返回值:成功返回?cái)?shù)組長度读跷,失敗false

實(shí)例:

<?php

$redis->delete('test');

var_dump($redis->lpush("test","111"));? //結(jié)果:int(1)

var_dump($redis->lpush("test","222"));? //結(jié)果:int(2)

?>

11,rpush

描述:由列表尾部添加字符串值禾唁。如果不存在該鍵則創(chuàng)建該列表效览。如果該鍵存在,而且不是一個(gè)列表荡短,返回FALSE丐枉。

參數(shù):key,value

返回值:成功返回?cái)?shù)組長度,失敗false

范例:

<?php

$redis->delete('test');

var_dump($redis->lpush("test","111"));? //結(jié)果:int(1)

var_dump($redis->lpush("test","222"));? //結(jié)果:int(2)

var_dump($redis->rpush("test","333"));? //結(jié)果:int(3)

var_dump($redis->rpush("test","444"));? //結(jié)果:int(4)

?>

12掘托,lpop

描述:返回和移除列表的第一個(gè)元素

參數(shù):key

返回值:成功返回第一個(gè)元素的值 瘦锹,失敗返回false

范例:

<?php

$redis->delete('test');

$redis->lpush("test","111");

$redis->lpush("test","222");

$redis->rpush("test","333");

$redis->rpush("test","444");

var_dump($redis->lpop("test"));? //結(jié)果:string(3) "222"

?>

13,lsize,llen

描述:返回的列表的長度闪盔。如果列表不存在或?yàn)榭胀湓海撁罘祷?。如果該鍵不是列表泪掀,該命令返回FALSE听绳。

參數(shù):Key

返回值:成功返回?cái)?shù)組長度,失敗false

范例:

<?php

$redis->delete('test');

$redis->lpush("test","111");

$redis->lpush("test","222");

$redis->rpush("test","333");

$redis->rpush("test","444");

var_dump($redis->lsize("test"));? //結(jié)果:int(4)

?>

14异赫,lget

描述:返回指定鍵存儲(chǔ)在列表中指定的元素辫红。 0第一個(gè)元素,1第二個(gè)… -1最后一個(gè)元素祝辣,-2的倒數(shù)第二…錯(cuò)誤的索引或鍵不指向列表則返回FALSE贴妻。

參數(shù):key index

返回值:成功返回指定元素的值,失敗false

范例:

<?php

$redis->delete('test');

$redis->lpush("test","111");

$redis->lpush("test","222");

$redis->rpush("test","333");

$redis->rpush("test","444");

var_dump($redis->lget("test",3));? //結(jié)果:string(3) "444"

?>

15蝙斜,lset

描述:為列表指定的索引賦新的值,若不存在該索引返回false.

參數(shù):key index value

返回值:成功返回true,失敗false

范例:

<?php

$redis->delete('test');

$redis->lpush("test","111");

$redis->lpush("test","222");

var_dump($redis->lget("test",1));? //結(jié)果:string(3) "111"

var_dump($redis->lset("test",1,"333"));? //結(jié)果:bool(true)

var_dump($redis->lget("test",1));? //結(jié)果:string(3) "333"

?>

16名惩,lgetrange

描述:

返回在該區(qū)域中的指定鍵列表中開始到結(jié)束存儲(chǔ)的指定元素,lGetRange(key, start, end)孕荠。0第一個(gè)元素娩鹉,1第二個(gè)元素… -1最后一個(gè)元素,-2的倒數(shù)第二…

參數(shù):key start end

返回值:成功返回查找的值稚伍,失敗false

范例:

<?php

$redis->delete('test');

$redis->lpush("test","111");

$redis->lpush("test","222");

print_r($redis->lgetrange("test",0,-1));? //結(jié)果:Array ( [0] => 222 [1] => 111 )

?>

17,lremove

描述:從列表中從頭部開始移除count個(gè)匹配的值弯予。如果count為零,所有匹配的元素都被刪除个曙。如果count是負(fù)數(shù)锈嫩,內(nèi)容從尾部開始刪除。

參數(shù):key count value

返回值:成功返回刪除的個(gè)數(shù),失敗false

范例:

<?php

$redis->delete('test');

$redis->lpush('test','a');

$redis->lpush('test','b');

$redis->lpush('test','c');

$redis->rpush('test','a');

print_r($redis->lgetrange('test', 0, -1)); //結(jié)果:Array ( [0] => c [1] => b [2] => a [3] => a )

var_dump($redis->lremove('test','a',2));? //結(jié)果:int(2)

print_r($redis->lgetrange('test', 0, -1)); //結(jié)果:Array ( [0] => c [1] => b )

?>

18呼寸,sadd

描述:為一個(gè)Key添加一個(gè)值艳汽。如果這個(gè)值已經(jīng)在這個(gè)Key中,則返回FALSE对雪。

參數(shù):key value

返回值:成功返回true,失敗false

范例:

<?php

$redis->delete('test');

var_dump($redis->sadd('test','111'));? //結(jié)果:bool(true)

var_dump($redis->sadd('test','333'));? //結(jié)果:bool(true)

print_r($redis->sort('test')); //結(jié)果:Array ( [0] => 111 [1] => 333 )

?>

19河狐,sremove

描述:刪除Key中指定的value值

參數(shù):key member

返回值:true or false

范例:

<?php

$redis->delete('test');

$redis->sadd('test','111');

$redis->sadd('test','333');

$redis->sremove('test','111');

print_r($redis->sort('test'));? ? //結(jié)果:Array ( [0] => 333 )

?>

20,smove

描述:將Key1中的value移動(dòng)到Key2中

參數(shù):srcKey dstKey member

返回值:true or false

范例

<?php

$redis->delete('test');

$redis->delete('test1');

$redis->sadd('test','111');

$redis->sadd('test','333');

$redis->sadd('test1','222');

$redis->sadd('test1','444');

$redis->smove('test',"test1",'111');

print_r($redis->sort('test1'));? ? //結(jié)果:Array ( [0] => 111 [1] => 222 [2] => 444 )

?>

21,scontains

描述:檢查集合中是否存在指定的值瑟捣。

參數(shù):key value

返回值:true or false

范例:

<?php

$redis->delete('test');

$redis->sadd('test','111');

$redis->sadd('test','112');

$redis->sadd('test','113');

var_dump($redis->scontains('test', '111')); //結(jié)果:bool(true)

?>

22,ssize

描述:返回集合中存儲(chǔ)值的數(shù)量

參數(shù):key

返回值:成功返回?cái)?shù)組個(gè)數(shù)馋艺,失敗0

范例:

<?php

$redis->delete('test');

$redis->sadd('test','111');

$redis->sadd('test','112');

echo $redis->ssize('test');? //結(jié)果:2

?>

23,spop

描述:隨機(jī)移除并返回key中的一個(gè)值

參數(shù):key

返回值:成功返回刪除的值迈套,失敗false

范例:

<?php

$redis->delete('test');

$redis->sadd("test","111");

$redis->sadd("test","222");

$redis->sadd("test","333");

var_dump($redis->spop("test"));? //結(jié)果:string(3) "333"

?>

24,sinter

描述:返回一個(gè)所有指定鍵的交集捐祠。如果只指定一個(gè)鍵,那么這個(gè)命令生成這個(gè)集合的成員交汤。如果不存在某個(gè)鍵雏赦,則返回FALSE劫笙。

參數(shù):key1, key2, keyN

返回值:成功返回?cái)?shù)組交集芙扎,失敗false

范例:

<?php

$redis->delete('test');

$redis->sadd("test","111");

$redis->sadd("test","222");

$redis->sadd("test","333");

$redis->sadd("test1","111");

$redis->sadd("test1","444");

var_dump($redis->sinter("test","test1"));? //結(jié)果:array(1) { [0]=> string(3) "111" }

?>

25,sinterstore

描述:執(zhí)行sInter命令并把結(jié)果儲(chǔ)存到新建的變量中。

參數(shù):

Key: dstkey, the key to store the diff into.

Keys: key1, key2… keyN. key1..keyN are intersected as in sInter.

返回值:成功返回填大,交集的個(gè)數(shù)戒洼,失敗false

范例:

<?php

$redis->delete('test');

$redis->sadd("test","111");

$redis->sadd("test","222");

$redis->sadd("test","333");

$redis->sadd("test1","111");

$redis->sadd("test1","444");

var_dump($redis->sinterstore('new',"test","test1"));? //結(jié)果:int(1)

var_dump($redis->smembers('new'));? //結(jié)果:array(1) { [0]=> string(3) "111" }

?>

26,sunion

描述:

返回一個(gè)所有指定鍵的并集

參數(shù):

Keys: key1, key2, … , keyN

返回值:成功返回合并后的集,失敗false

范例:

<?php

$redis->delete('test');

$redis->sadd("test","111");

$redis->sadd("test","222");

$redis->sadd("test","333");

$redis->sadd("test1","111");

$redis->sadd("test1","444");

print_r($redis->sunion("test","test1"));? //結(jié)果:Array ( [0] => 111 [1] => 222 [2] => 333 [3] => 444 )

?>

27,sunionstore

描述:執(zhí)行sunion命令并把結(jié)果儲(chǔ)存到新建的變量中允华。

參數(shù):

Key: dstkey, the key to store the diff into.

Keys: key1, key2… keyN. key1..keyN are intersected as in sInter.

返回值:成功返回圈浇,交集的個(gè)數(shù),失敗false

范例:

<?php

$redis->delete('test');

$redis->sadd("test","111");

$redis->sadd("test","222");

$redis->sadd("test","333");

$redis->sadd("test1","111");

$redis->sadd("test1","444");

var_dump($redis->sinterstore('new',"test","test1"));? //結(jié)果:int(4)

print_r($redis->smembers('new'));? //結(jié)果:Array ( [0] => 111 [1] => 222 [2] => 333 [3] => 444 )

?>

28,sdiff

描述:返回第一個(gè)集合中存在并在其他所有集合中不存在的結(jié)果

參數(shù):Keys: key1, key2, … , keyN: Any number of keys corresponding to sets in redis.

返回值:成功返回?cái)?shù)組靴寂,失敗false

范例:

<?php

$redis->delete('test');

$redis->sadd("test","111");

$redis->sadd("test","222");

$redis->sadd("test","333");

$redis->sadd("test1","111");

$redis->sadd("test1","444");

print_r($redis->sdiff("test","test1"));? //結(jié)果:Array ( [0] => 222 [1] => 333 )

?>

29,sdiffstore

描述:執(zhí)行sdiff命令并把結(jié)果儲(chǔ)存到新建的變量中磷蜀。

參數(shù):

Key: dstkey, the key to store the diff into.

Keys: key1, key2, … , keyN: Any number of keys corresponding to sets in redis

返回值:成功返回?cái)?shù)字,失敗false

范例:

<?php

$redis->delete('test');

$redis->sadd("test","111");

$redis->sadd("test","222");

$redis->sadd("test","333");

$redis->sadd("test1","111");

$redis->sadd("test1","444");

var_dump($redis->sdiffstore('new',"test","test1"));? //結(jié)果:int(2)

print_r($redis->smembers('new'));? //結(jié)果:Array ( [0] => 222 [1] => 333 )

?>

30,smembers, sgetmembers

描述:

返回集合的內(nèi)容

參數(shù):Key: key

返回值:An array of elements, the contents of the set.

范例:

<?php

$redis->delete('test');

$redis->sadd("test","111");

$redis->sadd("test","222");

print_r($redis->smembers('test'));? //結(jié)果:Array ( [0] => 111 [1] => 222 )

?>

php-redis當(dāng)中百炬,有很多不同名字褐隆,但是功能一樣的函數(shù),例如:lrem和lremove剖踊,這里就不例舉

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末庶弃,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子德澈,更是在濱河造成了極大的恐慌歇攻,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,042評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件梆造,死亡現(xiàn)場離奇詭異缴守,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,996評(píng)論 2 384
  • 文/潘曉璐 我一進(jìn)店門斧散,熙熙樓的掌柜王于貴愁眉苦臉地迎上來供常,“玉大人,你說我怎么就攤上這事鸡捐≌幌荆” “怎么了?”我有些...
    開封第一講書人閱讀 156,674評(píng)論 0 345
  • 文/不壞的土叔 我叫張陵箍镜,是天一觀的道長源祈。 經(jīng)常有香客問我,道長色迂,這世上最難降的妖魔是什么香缺? 我笑而不...
    開封第一講書人閱讀 56,340評(píng)論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮歇僧,結(jié)果婚禮上图张,老公的妹妹穿的比我還像新娘。我一直安慰自己诈悍,他們只是感情好祸轮,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,404評(píng)論 5 384
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著侥钳,像睡著了一般适袜。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上舷夺,一...
    開封第一講書人閱讀 49,749評(píng)論 1 289
  • 那天苦酱,我揣著相機(jī)與錄音,去河邊找鬼给猾。 笑死疫萤,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的敢伸。 我是一名探鬼主播扯饶,決...
    沈念sama閱讀 38,902評(píng)論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢(mèng)啊……” “哼详拙!你這毒婦竟也來了帝际?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,662評(píng)論 0 266
  • 序言:老撾萬榮一對(duì)情侶失蹤饶辙,失蹤者是張志新(化名)和其女友劉穎蹲诀,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體弃揽,經(jīng)...
    沈念sama閱讀 44,110評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡脯爪,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,451評(píng)論 2 325
  • 正文 我和宋清朗相戀三年则北,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片痕慢。...
    茶點(diǎn)故事閱讀 38,577評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡尚揣,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出掖举,到底是詐尸還是另有隱情快骗,我是刑警寧澤,帶...
    沈念sama閱讀 34,258評(píng)論 4 328
  • 正文 年R本政府宣布塔次,位于F島的核電站方篮,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏励负。R本人自食惡果不足惜藕溅,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,848評(píng)論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望继榆。 院中可真熱鬧巾表,春花似錦、人聲如沸略吨。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,726評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽晋南。三九已至惠猿,卻和暖如春羔砾,著一層夾襖步出監(jiān)牢的瞬間负间,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,952評(píng)論 1 264
  • 我被黑心中介騙來泰國打工姜凄, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留政溃,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,271評(píng)論 2 360
  • 正文 我出身青樓态秧,卻偏偏與公主長得像董虱,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子申鱼,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,452評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容

  • PHP-redis中文文檔 phpredis是php的一個(gè)擴(kuò)展愤诱,效率是相當(dāng)高有鏈表排序功能,對(duì)創(chuàng)建內(nèi)存級(jí)的模塊業(yè)務(wù)...
    神秘者007閱讀 2,729評(píng)論 0 2
  • 這篇文章主要介紹了30個(gè)php操作redis常用方法代碼例子,本文其實(shí)不止30個(gè)方法,可以操作string類型捐友、l...
    程序員祝融閱讀 597評(píng)論 0 14
  • phpredis是php的一個(gè)擴(kuò)展淫半,效率是相當(dāng)高有鏈表排序功能,對(duì)創(chuàng)建內(nèi)存級(jí)的模塊業(yè)務(wù)關(guān)系 很有用;以下是redi...
    神秘者007閱讀 1,235評(píng)論 0 1
  • phpredis是php的一個(gè)擴(kuò)展Redis::__construct構(gòu)造函數(shù)$redis = new Redis...
    hello大象閱讀 762評(píng)論 0 2
  • 1 Redis介紹1.1 什么是NoSql為了解決高并發(fā)昏滴、高可擴(kuò)展、高可用对人、大數(shù)據(jù)存儲(chǔ)問題而產(chǎn)生的數(shù)據(jù)庫解決方...
    克魯?shù)吕?/span>閱讀 5,274評(píng)論 0 36