溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

PHP中redis的使用方法

發(fā)布時間:2021-07-07 16:41:21 來源:億速云 閱讀:140 作者:chen 欄目:大數(shù)據(jù)

本篇內(nèi)容介紹了“PHP中redis的使用方法”的有關(guān)知識,在實(shí)際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!

一、Redis 連接與認(rèn)證

連接參數(shù):ip、端口、連接超時時間,連接成功返回 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('cfun', 'Welcome!');

獲取鍵值:成功返回 String 類型鍵值,若 key 不存在或不是 String 類型則返回 false

$ret = $redis->get('cfun');

從某個 key 所存儲的字符串的指定偏移量開始,替換為另一指定字符串,成功返回替換后新字符串的長度。

$ret = $redis->setRange('cfun', 7, ' to Beijing!');

獲取存儲在指定 key 中字符串的子字符串。

$ret = $redis->getRange('cfun', 0, 6);

設(shè)置新值,返回舊值:若 key 不存在則設(shè)置值,返回 false

$ret = $redis->getSet('cfun', 'hi man');

一次設(shè)置多個鍵值對:成功返回 true。

$ret = $redis->mset(['name' => 'cfun', 'age' => 18]);

一次獲取多個 key 的值:返回一個鍵值對數(shù)組,其中不存在的 key 值為 false。

$ret = $redis->mget(['name', 'age']);

設(shè)置指定 key 的值及其過期時間,單位:秒。

參數(shù):鍵名,過期時間,鍵值。成功返回 true。

$ret = $redis->setex('name', 10, 'cfun');

以毫秒為單位設(shè)置指定 key 的值和過期時間。成功返回 true。

$ret = $redis->psetex('name', 10, 'cfun');

key 的值不存在時,才為其設(shè)置值。key 不存在且設(shè)置成功返回 true,否則返回 false。

$ret = $redis->setnx('name', 'boby');

setnx 命令的批量操作。只有在給定所有 key 都不存在的時候才能設(shè)置成功,只要其中一個 key 存在,所有 key 都無法設(shè)置成功。

$ret = $redis->msetnx(['country' => 'China', 'city' => 'HangZhou']);

獲取指定 key 存儲的字符串的長度,key 不存在返回 0,不為字符串返回 false。

$ret = $redis->strlen('name');

將指定 key 存儲的數(shù)字值增加 1。若 key 不存在會先初始化為 0 再增加 1,若 key 存儲的不是整數(shù)值則返回 false。成功返回 key 新值。

$ret = $redis->incr('age');

給指定 key 存儲的數(shù)字值增加指定增量值。

$ret = $redis->incrBy('age', 10);

給指定 key 存儲的數(shù)字值增加指定浮點(diǎn)數(shù)增量。

$ret = $redis->incrByFloat('age', 1.5);

將指定 key 存儲的數(shù)字值減一。

$ret = $redis->decr('age');

將指定 key 存儲的數(shù)字值減去指定減量值。

$ret = $redis->decrBy('age', 10);

為指定 key 追加值到原值末尾,若 key 不存在則相對于 set () 函數(shù)。

$ret = $redis->append('cfun', 'haha');

三、Hash 操作

為 hash 表中的字段賦值。成功返回 1,失敗返回 0。若 hash 表不存在會先創(chuàng)建表再賦值,若字段已存在會覆蓋舊值。

$ret = $redis->hSet('user', 'realname', 'cfun');

獲取 hash 表中指定字段的值。若 hash 表不存在則返回 false。

$ret = $redis->hGet('user', 'realname');

查看 hash 表的某個字段是否存在,存在返回 true,否則返回 false。

$ret = $redis->hExists('user', 'realname');

刪除 hash 表的一個字段,不支持刪除多個字段。成功返回 1,否則返回 0。

$ret = $redis->hDel('user', 'realname');

同時設(shè)置某個 hash 表的多個字段值。成功返回 true。

$ret = $redis->hMset('user', ['name' => 'cfun', 'age' => 18]);

同時獲取某個 hash 表的多個字段值。其中不存在的字段值為 false。

$ret = $redis->hMget('user', ['name', 'age']);

獲取某個 hash 表所有的字段和值。

$ret = $redis->hGetAll('user');

獲取某個 hash 表所有字段名。hash 表不存在時返回空數(shù)組,key 不為 hash 表時返回 false。

$ret = $redis->hKeys('user');

獲取某個 hash 表所有字段值。

$ret = $redis->hVals('user');

為 hash 表中不存在的字段賦值。若 hash 表不存在則先創(chuàng)建,若字段已存在則不做任何操作。設(shè)置成功返回 true,否則返回 false。

$ret = $redis->hSetNx('user', 'realname', 'cfun');

獲取某個 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 頭部插入一個值。

$ret = $redis->lPush('city', 'ShangHai');

從 list 尾部插入一個值。

$ret = $redis->rPush('city', 'ShangHai');

獲取列表指定區(qū)間中的元素。0 表示列表第一個元素,-1 表示最后一個元素,-2 表示倒數(shù)第二個元素。

$ret = $redis->lrange('city', 0,** -1);

查看隊(duì)列所有元素

將一個插入已存在的列表頭部,列表不存在時操作無效。

$ret = $redis->lPushx('city', 'ShangHai');

將一個或多個值插入已存在的列表尾部,列表不存在時操作無效。

$ret = $redis->rPushx('city', 'NanJing');

移除并返回列表的第一個元素,若 key 不存在或不是列表則返回 false。

$ret = $redis->lPop('city');

移除并返回列表的最后一個元素,若 key 不存在或不是列表則返回 false。

$ret = $redis->rPop('city');

移除并獲取列表的第一個元素。如果列表沒有元素則會阻塞列表直到等待超時或發(fā)現(xiàn)可彈出元素為止。

參數(shù):key,超時時間(單位:秒)

返回值:[0=>key,1=>value],超時返回 []

$ret = $redis->blPop('city', 10);

移除并獲取列表的最后一個元素。如果列表沒有元素則會阻塞列表直到等待超時或發(fā)現(xiàn)可彈出元素為止。

參數(shù):key,超時時間(單位:秒)

返回值:[0=>key,1=>value],超時返回 []

$ret = $redis->brPop('city', 10);

移除列表中最后一個元素,將其插入另一個列表頭部,并返回這個元素。若源列表沒有元素則返回 false。

$ret = $redis->rpoplpush('city', 'city2');

移除列表中最后一個元素,將其插入另一個列表頭部,并返回這個元素。如果列表沒有元素則會阻塞列表直到等待超時或發(fā)現(xiàn)可彈出元素為止。

參數(shù):源列表,目標(biāo)列表,超時時間(單位:秒)

超時返回 false

$ret = $redis->brpoplpush('city', 'city2', 10);

返回列表長度。

$ret = $redis->lLen('city');

通過索引獲取列表中的元素。若索引超出列表范圍則返回 false。

$ret = $redis->lindex('city', 0);

通過索引設(shè)置列表中元素的值。若是索引超出范圍,或?qū)σ粋€空列表進(jìn)行 lset 操作,則返回 false。

$ret = $redis->lSet('city', 2, 'changsha');

在列表中指定元素前或后面插入元素。若指定元素不在列表中,或列表不存在時,不執(zhí)行任何操作。

參數(shù):列表 key,Redis::AFTER 或 Redis::BEFORE,基準(zhǔn)元素,插入元素

返回值:插入成功返回插入后列表元素個數(shù),若基準(zhǔn)元素不存在返回 - 1,若 key 不存在返回 0,若 key 不是列表返回 false。

$ret = $redis->lInsert('city', Redis::AFTER, 'changsha', 'nanjing');

根據(jù)第三個參數(shù) count 的值,移除列表中與參數(shù) value 相等的元素。

count > 0 : 從表頭開始向表尾搜索,移除與 value 相等的元素,數(shù)量為 count。

count < 0 : 從表尾開始向表頭搜索,移除與 value 相等的元素,數(shù)量為 count 的絕對值。

count = 0 : 移除表中所有與 value 相等的值。

返回實(shí)際刪除元素個數(shù)

$ret = $redis->lrem('city', 'ShangHai', -2);

對一個列表進(jìn)行修剪,只保留指定區(qū)間的元素,其他元素都刪除。成功返回 true。

$ret = $redis->ltrim('city', 1, 4);

五、Set 操作

將一個元素加入集合,已經(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');

移除并返回集合中的一個隨機(jī)元素。

$ret = $redis->sPop('myset');

返回集合中的一個或多個隨機(jī)成員元素,返回元素的數(shù)量和情況由函數(shù)的第二個參數(shù) count 決定:

如果 count 為正數(shù),且小于集合基數(shù),那么命令返回一個包含 count 個元素的數(shù)組,數(shù)組中的元素各不相同。

如果 count 大于等于集合基數(shù),那么返回整個集合。

如果 count 為負(fù)數(shù),那么命令返回一個數(shù)組,數(shù)組中的元素可能會重復(fù)出現(xiàn)多次,而數(shù)組的長度為 count 的絕對值。

$ret = $redis->sRandMember('myset', 2);

移除集合中指定的一個元素,忽略不存在的元素。刪除成功返回 1,否則返回 0。

$ret = $redis->srem('myset', 'hello');

迭代集合中的元素。

參數(shù):key,迭代器變量,匹配模式,每次返回元素?cái)?shù)量(默認(rèn)為 10 個)

$ret = $redis->sscan('myset', $it, 'a*', 5);

將指定成員從一個源集合移動到一個目的集合。若源集合不存在或不包含指定元素則不做任何操作,返回 false。

參數(shù):源集合,目標(biāo)集合,移動元素

$ret = $redis->sMove('myset', 'myset2', 'aaa');

返回所有給定集合之間的差集,不存在的集合視為空集。

$ret = $redis->sDiff('myset', 'myset2', 'myset3');

將所有給定集合之間的差集存儲在指定的目的集合中。若目的集合已存在則覆蓋它。返回差集元素個數(shù)。

參數(shù):第一個參數(shù)為目標(biāo)集合,存儲差集。

$ret = $redis->sDiffStore('myset3', 'myset', 'myset2');

返回所有給定集合的交集,不存在的集合視為空集。

$ret = $redis->sInter('myset', 'myset2', 'myset3');

將所有給定集合的交集存儲在指定的目的集合中。若目的集合已存在則覆蓋它。返回交集元素個數(shù)。

參數(shù):第一個參數(shù)為目標(biāo)集合,存儲交集。

$ret = $redis->sInterStore('myset4', 'myset', 'myset2', 'myset3');

返回所有給定集合的并集,不存在的集合視為空集。

$ret = $redis->sUnion('myset', 'myset2', 'myset3');

將所有給定集合的并集存儲在指定的目的集合中。若目的集合已存在則覆蓋它。返回并集元素個數(shù)。

參數(shù):第一個參數(shù)為目標(biāo)集合,存儲并集。

$ret = $redis->sUnionStore('myset4', 'myset', 'myset2', 'myset3');

六、Zset 操作

將一個或多個成員元素及其分?jǐn)?shù)值加入到有序集當(dāng)中。如果某個成員已經(jīng)是有序集的成員,則更新這個成員的分?jǐn)?shù)值,并通過重新插入這個成員元素,來保證該成員在正確的位置上。分?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ù):第四個參數(shù)表示是否返回各個元素的分?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ū)間表示的時候大值在前,小值在后,默認(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');

移除有序集中的一個或多個成員,忽略不存在的成員。返回刪除的元素個數(shù)。

$ret = $redis->zRem('scores', 'chemistry', 'English');

移除有序集中指定排名區(qū)間的所有成員。

$ret = $redis->zRemRangeByRank('scores', 0, 2);

移除有序集中指定分?jǐn)?shù)值區(qū)間的所有成員。

$ret = $redis->zRemRangeByScore('scores', 80, 90);

對有序集中指定成員的分?jǐn)?shù)值增加指定增量值。若為負(fù)數(shù)則做減法,若有序集不存在則先創(chuàng)建,若有序集中沒有對應(yīng)成員則先添加,最后再操作。

$ret = $redis->zIncrBy('scores', 2, 'Chinese');

計(jì)算給定一個或多個有序集的交集,并將其存儲到一個目的有序集中。結(jié)果集中某個成員的分?jǐn)?shù)值是所有給定集下該成員分?jǐn)?shù)值之和。

$ret = $redis->zinterstore('zset3', 'zset2', 'zset1');

計(jì)算給定一個或多個有序集的并集,并將其存儲到一個目的有序集中。結(jié)果集中某個成員的分?jǐn)?shù)值是所有給定集下該成員分?jǐn)?shù)值之和。

$ret = $redis->zunionstore('zset3', 'zset2', 'zset1');

“PHP中redis的使用方法”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識可以關(guān)注億速云網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實(shí)用文章!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI