一路鹰、Redis連接與認(rèn)證
`//連接參數(shù):ip狰晚、端口、連接超時(shí)時(shí)間,連接成功返回true羹呵,否則返回false`
`$ret` `=` `$redis``->connect(``'127.0.0.1'``, 6379, 30);`
`//密碼認(rèn)證:成功返回true骂际,否則返回false`
`$ret` `=` `$redis``->auth(``'123456'``);`
二、String操作
`//設(shè)置鍵值:成功返回true冈欢,否則返回false`
`$redis``->set(``'mystr'``,` `'Welcome!'``);`
`//獲取鍵值:成功返回String類型鍵值歉铝,若key不存在或不是String類型則返回false`
`$ret` `=` `$redis``->get(``'mystr'``);`
`//從某個(gè)key所存儲(chǔ)的字符串的指定偏移量開始,替換為另一指定字符串凑耻,成功返回替換后新字符串的長(zhǎng)度太示。`
`$ret` `=` `$redis``->setRange(``'mystr'``, 7,` `' to Beijing!'``);`
`//獲取存儲(chǔ)在指定key中字符串的子字符串。`
`$ret` `=` `$redis``->getRange(``'mystr'``, 0, 6);`
`//設(shè)置新值香浩,返回舊值:若key不存在則設(shè)置值类缤,返回false`
`$ret` `=` `$redis``->getSet(``'mystr'``,` `'hi man'``);`
`//一次設(shè)置多個(gè)鍵值對(duì):成功返回true。`
`$ret` `=` `$redis``->mset([``'name'` `=>` `'jet'``,` `'age'` `=> 18]);`
`//一次獲取多個(gè)key的值:返回一個(gè)鍵值對(duì)數(shù)組邻吭,其中不存在的key值為false餐弱。`
`$ret` `=` `$redis``->mget([``'name'``,` `'age'``]);`
`//設(shè)置指定key的值及其過期時(shí)間,單位:秒囱晴。`
`//參數(shù):鍵名膏蚓,過期時(shí)間,鍵值速缆。成功返回true降允。`
`$ret` `=` `$redis``->setex(``'name'``, 10,` `'jetwu'``);`
`//以毫秒為單位設(shè)置指定key的值和過期時(shí)間。成功返回true艺糜。`
`$ret` `=` `$redis``->psetex(``'name'``, 10,` `'jetwu'``);`
`//key的值不存在時(shí),才為其設(shè)置值幢尚。key不存在且設(shè)置成功返回true破停,否則返回false。`
`$ret` `=` `$redis``->setnx(``'name'``,` `'boby'``);`
`//setnx命令的批量操作尉剩。只有在給定所有key都不存在的時(shí)候才能設(shè)置成功真慢,只要其中一個(gè)key存在,所有key都無(wú)法設(shè)置成功理茎。`
`$ret` `=` `$redis``->msetnx([``'country'` `=>` `'China'``,` `'city'` `=>` `'Shenzhen'``]);`
`//獲取指定key存儲(chǔ)的字符串的長(zhǎng)度黑界,key不存在返回0,不為字符串返回false皂林。`
`$ret` `=` `$redis``->``strlen``(``'name'``);`
`//將指定key存儲(chǔ)的數(shù)字值增加1朗鸠。若key不存在會(huì)先初始化為0再增加1,若key存儲(chǔ)的不是整數(shù)值則返回false础倍。成功返回key新值烛占。`
`$ret` `=` `$redis``->incr(``'age'``);`
`//給指定key存儲(chǔ)的數(shù)字值增加指定增量值。`
`$ret` `=` `$redis``->incrBy(``'age'``, 10);`
`//給指定key存儲(chǔ)的數(shù)字值增加指定浮點(diǎn)數(shù)增量。`
`$ret` `=` `$redis``->incrByFloat(``'age'``, 1.5);`
`//將指定key存儲(chǔ)的數(shù)字值減一忆家。`
`$ret` `=` `$redis``->decr(``'age'``);`
`//將指定key存儲(chǔ)的數(shù)字值減去指定減量值犹菇。`
`$ret` `=` `$redis``->decrBy(``'age'``, 10);`
`//為指定key追加值到原值末尾,若key不存在則相對(duì)于set()函數(shù)芽卿。`
`$ret` `=` `$redis``->append(``'mystr'``,` `'haha'``);`
三揭芍、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);`
四专普、List操作
`//從list頭部插入一個(gè)值悯衬。`
`$ret` `=` `$redis``->lPush(``'city'``,` `'guangzhou'``);`
`//從list尾部插入一個(gè)值。`
`$ret` `=` `$redis``->rPush(``'city'``,` `'guangzhou'``);`
`//獲取列表指定區(qū)間中的元素檀夹。0表示列表第一個(gè)元素筋粗,-1表示最后一個(gè)元素,-2表示倒數(shù)第二個(gè)元素炸渡。`
`$ret` `=` `$redis``->lrange(``'city'``, 0, -1);``//查看隊(duì)列所有元素`
`//將一個(gè)插入已存在的列表頭部娜亿,列表不存在時(shí)操作無(wú)效。`
`$ret` `=` `$redis``->lPushx(``'city'``,` `'hangzhou'``);`
`//將一個(gè)或多個(gè)值插入已存在的列表尾部蚌堵,列表不存在時(shí)操作無(wú)效买决。`
`$ret` `=` `$redis``->rPushx(``'city'``,` `'hangzhou'``);`
`//移除并返回列表的第一個(gè)元素,若key不存在或不是列表則返回false吼畏。`
`$ret` `=` `$redis``->lPop(``'city'``);`
`//移除并返回列表的最后一個(gè)元素督赤,若key不存在或不是列表則返回false。`
`$ret` `=` `$redis``->rPop(``'city'``);`
`//移除并獲取列表的第一個(gè)元素泻蚊。如果列表沒有元素則會(huì)阻塞列表直到等待超時(shí)或發(fā)現(xiàn)可彈出元素為止躲舌。`
`//參數(shù):key,超時(shí)時(shí)間(單位:秒)`
`//返回值:[0=>key,1=>value]性雄,超時(shí)返回[]`
`$ret` `=` `$redis``->blPop(``'city'``, 10);`
`//移除并獲取列表的最后一個(gè)元素没卸。如果列表沒有元素則會(huì)阻塞列表直到等待超時(shí)或發(fā)現(xiàn)可彈出元素為止。`
`//參數(shù):key毅贮,超時(shí)時(shí)間(單位:秒)`
`//返回值:[0=>key,1=>value]办悟,超時(shí)返回[]`
`$ret` `=` `$redis``->brPop(``'city'``, 10);`
`//移除列表中最后一個(gè)元素,將其插入另一個(gè)列表頭部滩褥,并返回這個(gè)元素。若源列表沒有元素則返回false炫加。`
`$ret` `=` `$redis``->rpoplpush(``'city'``,` `'city2'``);`
`//移除列表中最后一個(gè)元素瑰煎,將其插入另一個(gè)列表頭部,并返回這個(gè)元素俗孝。如果列表沒有元素則會(huì)阻塞列表直到等待超時(shí)或發(fā)現(xiàn)可彈出元素為止酒甸。`
`//參數(shù):源列表,目標(biāo)列表赋铝,超時(shí)時(shí)間(單位:秒)`
`//超時(shí)返回false`
`$ret` `=` `$redis``->brpoplpush(``'city'``,` `'city2'``, 10);`
`//返回列表長(zhǎng)度插勤。`
`$ret` `=` `$redis``->lLen(``'city'``);`
`//通過索引獲取列表中的元素。若索引超出列表范圍則返回false。`
`$ret` `=` `$redis``->lindex(``'city'``, 0);`
`//通過索引設(shè)置列表中元素的值农尖。若是索引超出范圍析恋,或?qū)σ粋€(gè)空列表進(jìn)行l(wèi)set操作,則返回false盛卡。`
`$ret` `=` `$redis``->lSet(``'city'``, 2,` `'changsha'``);`
`//在列表中指定元素前或后面插入元素助隧。若指定元素不在列表中,或列表不存在時(shí)滑沧,不執(zhí)行任何操作并村。`
`//參數(shù):列表key,Redis::AFTER或Redis::BEFORE滓技,基準(zhǔn)元素哩牍,插入元素`
`//返回值:插入成功返回插入后列表元素個(gè)數(shù),若基準(zhǔn)元素不存在返回-1令漂,若key不存在返回0膝昆,若key不是列表返回false。`
`$ret` `=` `$redis``->lInsert(``'city'``, Redis::AFTER,` `'changsha'``,` `'nanjing'``);`
`//根據(jù)第三個(gè)參數(shù)count的值洗显,移除列表中與參數(shù)value相等的元素外潜。`
`//count > 0 : 從表頭開始向表尾搜索,移除與value相等的元素挠唆,數(shù)量為count处窥。`
`//count < 0 : 從表尾開始向表頭搜索,移除與value相等的元素玄组,數(shù)量為count的絕對(duì)值滔驾。`
`//count = 0 : 移除表中所有與value相等的值。`
`//返回實(shí)際刪除元素個(gè)數(shù)`
`$ret` `=` `$redis``->lrem(``'city'``,` `'guangzhou'``, -2);`
`//對(duì)一個(gè)列表進(jìn)行修剪俄讹,只保留指定區(qū)間的元素哆致,其他元素都刪除。成功返回true患膛。`
`$ret` `=` `$redis``->ltrim(``'city'``, 1, 4);`
五摊阀、Set操作
`//將一個(gè)元素加入集合,已經(jīng)存在集合中的元素則忽略踪蹬。若集合不存在則先創(chuàng)建胞此,若key不是集合類型則返回false,若元素已存在返回0跃捣,插入成功返回1漱牵。`
`$ret` `=` `$redis``->sAdd(``'myset'``,` `'hello'``);`
`//返回集合中所有成員。`
`$ret` `=` `$redis``->sMembers(``'myset'``);`
`//判斷指定元素是否是指定集合的成員疚漆,是返回true酣胀,否則返回false刁赦。`
`$ret` `=` `$redis``->sismember(``'myset'``,` `'hello'``);`
`//返回集合中元素的數(shù)量。`
`$ret` `=` `$redis``->scard(``'myset'``);`
`//移除并返回集合中的一個(gè)隨機(jī)元素闻镶。`
`$ret` `=` `$redis``->sPop(``'myset'``);`
`//返回集合中的一個(gè)或多個(gè)隨機(jī)成員元素甚脉,返回元素的數(shù)量和情況由函數(shù)的第二個(gè)參數(shù)count決定:`
`//如果count為正數(shù),且小于集合基數(shù)儒溉,那么命令返回一個(gè)包含count個(gè)元素的數(shù)組宦焦,數(shù)組中的元素各不相同。`
`//如果count大于等于集合基數(shù)顿涣,那么返回整個(gè)集合波闹。`
`//如果count為負(fù)數(shù),那么命令返回一個(gè)數(shù)組涛碑,數(shù)組中的元素可能會(huì)重復(fù)出現(xiàn)多次精堕,而數(shù)組的長(zhǎng)度為count的絕對(duì)值。`
`$ret` `=` `$redis``->sRandMember(``'myset'``, 2);`
`//移除集合中指定的一個(gè)元素蒲障,忽略不存在的元素歹篓。刪除成功返回1,否則返回0揉阎。`
`$ret` `=` `$redis``->srem(``'myset'``,` `'hello'``);`
`//迭代集合中的元素庄撮。`
`//參數(shù):key,迭代器變量毙籽,匹配模式洞斯,每次返回元素?cái)?shù)量(默認(rèn)為10個(gè))`
`$ret` `=` `$redis``->sscan(``'myset'``,` `$it``,` `'a*'``, 5);`
`//將指定成員從一個(gè)源集合移動(dòng)到一個(gè)目的集合。若源集合不存在或不包含指定元素則不做任何操作坑赡,返回false烙如。`
`//參數(shù):源集合,目標(biāo)集合毅否,移動(dòng)元素`
`$ret` `=` `$redis``->sMove(``'myset'``,` `'myset2'``,` `'aaa'``);`
`//返回所有給定集合之間的差集亚铁,不存在的集合視為空集。`
`$ret` `=` `$redis``->sDiff(``'myset'``,` `'myset2'``,` `'myset3'``);`
`//將所有給定集合之間的差集存儲(chǔ)在指定的目的集合中螟加。若目的集合已存在則覆蓋它徘溢。返回差集元素個(gè)數(shù)。`
`//參數(shù):第一個(gè)參數(shù)為目標(biāo)集合捆探,存儲(chǔ)差集甸昏。`
`$ret` `=` `$redis``->sDiffStore(``'myset3'``,` `'myset'``,` `'myset2'``);`
`//返回所有給定集合的交集,不存在的集合視為空集徐许。`
`$ret` `=` `$redis``->sInter(``'myset'``,` `'myset2'``,` `'myset3'``);`
`//將所有給定集合的交集存儲(chǔ)在指定的目的集合中。若目的集合已存在則覆蓋它卒蘸。返回交集元素個(gè)數(shù)雌隅。`
`//參數(shù):第一個(gè)參數(shù)為目標(biāo)集合翻默,存儲(chǔ)交集。`
`$ret` `=` `$redis``->sInterStore(``'myset4'``,` `'myset'``,` `'myset2'``,` `'myset3'``);`
`//返回所有給定集合的并集恰起,不存在的集合視為空集修械。`
`$ret` `=` `$redis``->sUnion(``'myset'``,` `'myset2'``,` `'myset3'``);`
`//將所有給定集合的并集存儲(chǔ)在指定的目的集合中。若目的集合已存在則覆蓋它检盼。返回并集元素個(gè)數(shù)肯污。`
`//參數(shù):第一個(gè)參數(shù)為目標(biāo)集合,存儲(chǔ)并集吨枉。`
`$ret` `=` `$redis``->sUnionStore(``'myset4'``,` `'myset'``,` `'myset2'``,` `'myset3'``);`
六蹦渣、Zset操作
`//將一個(gè)或多個(gè)成員元素及其分?jǐn)?shù)值加入到有序集當(dāng)中。如果某個(gè)成員已經(jīng)是有序集的成員貌亭,則更新這個(gè)成員的分?jǐn)?shù)值柬唯,并通過重新插入這個(gè)成員元素,來保證該成員在正確的位置上圃庭。分?jǐn)?shù)值可以是整數(shù)值或雙精度浮點(diǎn)數(shù)锄奢。`
`$ret` `=` `$redis``->zAdd(``'scores'``, 98,` `'English'``, 90,` `'physics'``);`
`//返回有序集中指定區(qū)間內(nèi)的成員。成員按分?jǐn)?shù)值遞增排序剧腻,分?jǐn)?shù)值相同的則按字典序來排序拘央。`
`//參數(shù):第四個(gè)參數(shù)表示是否返回各個(gè)元素的分?jǐn)?shù)值,默認(rèn)為false书在。`
`$ret` `=` `$redis``->zRange(``'scores'``, 0, -1, true);``//查看Zset所有成員以及它們各自的分?jǐn)?shù)值`
`//返回有序集中指定區(qū)間內(nèi)的成員灰伟。成員按分?jǐn)?shù)值遞減排序,分?jǐn)?shù)值相同的則按字典序的逆序來排序蕊温。`
`$ret` `=` `$redis``->zReverseRange(``'scores'``, 0, -1, true);`
`//返回有序集中指定分?jǐn)?shù)區(qū)間的成員列表袱箱,按分?jǐn)?shù)值遞增排序,分?jǐn)?shù)值相同的則按字典序來排序义矛。默認(rèn)使用閉區(qū)間发笔。`
`$ret` `=` `$redis``->zRangeByScore(``'scores'``, 90, 100, [``'withscores'``=>true]);`
`//返回有序集中指定分?jǐn)?shù)區(qū)間的成員列表,按分?jǐn)?shù)值遞減排序凉翻,分?jǐn)?shù)值相同的則按字典序的逆序來排序了讨。注意,區(qū)間表示的時(shí)候大值在前制轰,小值在后前计,默認(rèn)使用閉區(qū)間。`
`$ret` `=` `$redis``->zRevRangeByScore(``'scores'``, 100, 90, [``'withscores'``=>true]);`
`//迭代有序集合中的元素垃杖。`
`//返回值:[元素名=>分?jǐn)?shù)值,,..]`
`$ret` `=` `$redis``->zscan(``'scores'``,` `$it``,` `''``, 10);`
`//返回指定有序集的元素?cái)?shù)量男杈。`
`$ret` `=` `$redis``->zCard(``'scores'``);`
`//返回有序集中指定分?jǐn)?shù)區(qū)間的成員數(shù)量。`
`$ret` `=` `$redis``->zCount(``'scores'``, 90, 100);`
`//返回有序集中指定成員的分?jǐn)?shù)值调俘。若成員不存在則返回false伶棒。`
`$ret` `=` `$redis``->zScore(``'scores'``,` `'math'``);`
`//返回有序集中指定成員的排名旺垒,按分?jǐn)?shù)值遞增排序。分?jǐn)?shù)值最小者排名為0肤无。`
`$ret` `=` `$redis``->zRank(``'scores'``,` `'chemistry'``);`
`//返回有序集中指定成員的排名先蒋,按分?jǐn)?shù)值遞減排序。分?jǐn)?shù)值最大者排名為0宛渐。`
`$ret` `=` `$redis``->zRevRank(``'scores'``,` `'chemistry'``);`
`//移除有序集中的一個(gè)或多個(gè)成員竞漾,忽略不存在的成員。返回刪除的元素個(gè)數(shù)窥翩。`
`$ret` `=` `$redis``->zRem(``'scores'``,` `'chemistry'``,` `'English'``);`
`//移除有序集中指定排名區(qū)間的所有成員业岁。`
`$ret` `=` `$redis``->zRemRangeByRank(``'scores'``, 0, 2);`
`//移除有序集中指定分?jǐn)?shù)值區(qū)間的所有成員。`
`$ret` `=` `$redis``->zRemRangeByScore(``'scores'``, 80, 90);`
`//對(duì)有序集中指定成員的分?jǐn)?shù)值增加指定增量值鳍烁。若為負(fù)數(shù)則做減法叨襟,若有序集不存在則先創(chuàng)建,若有序集中沒有對(duì)應(yīng)成員則先添加幔荒,最后再操作糊闽。`
`$ret` `=` `$redis``->zIncrBy(``'scores'``, 2,` `'Chinese'``);`
`//計(jì)算給定一個(gè)或多個(gè)有序集的交集,并將其存儲(chǔ)到一個(gè)目的有序集中爹梁。結(jié)果集中某個(gè)成員的分?jǐn)?shù)值是所有給定集下該成員分?jǐn)?shù)值之和右犹。`
`$ret` `=` `$redis``->zinterstore(``'zset3'``,` `'zset2'``,` `'zset1'``);`
`//計(jì)算給定一個(gè)或多個(gè)有序集的并集,并將其存儲(chǔ)到一個(gè)目的有序集中姚垃。結(jié)果集中某個(gè)成員的分?jǐn)?shù)值是所有給定集下該成員分?jǐn)?shù)值之和念链。`
`$ret` `=` `$redis``->zunionstore(``'zset3'``,` `'zset2'``,` `'zset1'``);`