一、Redis連接與認證
`//連接參數(shù):ip、端口、連接超時時間,連接成功返回true,否則返回false`
`$ret` `=` `$redis``->connect(``'127.0.0.1'``, 6379, 30);`
`//密碼認證:成功返回true,否則返回false`
`$ret` `=` `$redis``->auth(``'123456'``);`
二、String操作
`//設(shè)置鍵值:成功返回true,否則返回false`
`$redis``->set(``'mystr'``,` `'Welcome!'``);`
`//獲取鍵值:成功返回String類型鍵值,若key不存在或不是String類型則返回false`
`$ret` `=` `$redis``->get(``'mystr'``);`
`//從某個key所存儲的字符串的指定偏移量開始,替換為另一指定字符串,成功返回替換后新字符串的長度。`
`$ret` `=` `$redis``->setRange(``'mystr'``, 7,` `' to Beijing!'``);`
`//獲取存儲在指定key中字符串的子字符串。`
`$ret` `=` `$redis``->getRange(``'mystr'``, 0, 6);`
`//設(shè)置新值,返回舊值:若key不存在則設(shè)置值,返回false`
`$ret` `=` `$redis``->getSet(``'mystr'``,` `'hi man'``);`
`//一次設(shè)置多個鍵值對:成功返回true。`
`$ret` `=` `$redis``->mset([``'name'` `=>` `'jet'``,` `'age'` `=> 18]);`
`//一次獲取多個key的值:返回一個鍵值對數(shù)組,其中不存在的key值為false。`
`$ret` `=` `$redis``->mget([``'name'``,` `'age'``]);`
`//設(shè)置指定key的值及其過期時間,單位:秒。`
`//參數(shù):鍵名,過期時間,鍵值。成功返回true。`
`$ret` `=` `$redis``->setex(``'name'``, 10,` `'jetwu'``);`
`//以毫秒為單位設(shè)置指定key的值和過期時間。成功返回true。`
`$ret` `=` `$redis``->psetex(``'name'``, 10,` `'jetwu'``);`
`//key的值不存在時,才為其設(shè)置值。key不存在且設(shè)置成功返回true,否則返回false。`
`$ret` `=` `$redis``->setnx(``'name'``,` `'boby'``);`
`//setnx命令的批量操作。只有在給定所有key都不存在的時候才能設(shè)置成功,只要其中一個key存在,所有key都無法設(shè)置成功。`
`$ret` `=` `$redis``->msetnx([``'country'` `=>` `'China'``,` `'city'` `=>` `'Shenzhen'``]);`
`//獲取指定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ù)字值增加指定浮點數(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(``'mystr'``,` `'haha'``);`
三、Hash操作
`//為hash表中的字段賦值。成功返回1,失敗返回0。若hash表不存在會先創(chuàng)建表再賦值,若字段已存在會覆蓋舊值。`
`$ret` `=` `$redis``->hSet(``'user'``,` `'realname'``,` `'jetwu'``);`
`//獲取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'` `=>` `'jet'``,` `'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'``,` `'jetwu'``);`
`//獲取某個hash表的字段數(shù)量。若hash表不存在返回0,若key不為hash表則返回false。`
`$ret` `=` `$redis``->hLen(``'user'``);`
`//為hash表中的指定字段加上指定增量值,若增量值為負數(shù)則相當于減法操作。若hash表不存在則先創(chuàng)建,若字段不存在則先初始化值為0再進行操作,若字段值為字符串則返回false。設(shè)置成功返回字段新值。`
`$ret` `=` `$redis``->hIncrBy(``'user'``,` `'age'``, 10);`
`//為hash表中的指定字段加上指定浮點數(shù)增量值。`
`$ret` `=` `$redis``->hIncrBy(``'user'``,` `'age'``, 1.5);`
四、List操作
`//從list頭部插入一個值。`
`$ret` `=` `$redis``->lPush(``'city'``,` `'guangzhou'``);`
`//從list尾部插入一個值。`
`$ret` `=` `$redis``->rPush(``'city'``,` `'guangzhou'``);`
`//獲取列表指定區(qū)間中的元素。0表示列表第一個元素,-1表示最后一個元素,-2表示倒數(shù)第二個元素。`
`$ret` `=` `$redis``->lrange(``'city'``, 0, -1);``//查看隊列所有元素`
`//將一個插入已存在的列表頭部,列表不存在時操作無效。`
`$ret` `=` `$redis``->lPushx(``'city'``,` `'hangzhou'``);`
`//將一個或多個值插入已存在的列表尾部,列表不存在時操作無效。`
`$ret` `=` `$redis``->rPushx(``'city'``,` `'hangzhou'``);`
`//移除并返回列表的第一個元素,若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ù):源列表,目標列表,超時時間(單位:秒)`
`//超時返回false`
`$ret` `=` `$redis``->brpoplpush(``'city'``,` `'city2'``, 10);`
`//返回列表長度。`
`$ret` `=` `$redis``->lLen(``'city'``);`
`//通過索引獲取列表中的元素。若索引超出列表范圍則返回false。`
`$ret` `=` `$redis``->lindex(``'city'``, 0);`
`//通過索引設(shè)置列表中元素的值。若是索引超出范圍,或?qū)σ粋€空列表進行l(wèi)set操作,則返回false。`
`$ret` `=` `$redis``->lSet(``'city'``, 2,` `'changsha'``);`
`//在列表中指定元素前或后面插入元素。若指定元素不在列表中,或列表不存在時,不執(zhí)行任何操作。`
`//參數(shù):列表key,Redis::AFTER或Redis::BEFORE,基準元素,插入元素`
`//返回值:插入成功返回插入后列表元素個數(shù),若基準元素不存在返回-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ù)`
`$ret` `=` `$redis``->lrem(``'city'``,` `'guangzhou'``, -2);`
`//對一個列表進行修剪,只保留指定區(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'``);`
`//移除并返回集合中的一個隨機元素。`
`$ret` `=` `$redis``->sPop(``'myset'``);`
`//返回集合中的一個或多個隨機成員元素,返回元素的數(shù)量和情況由函數(shù)的第二個參數(shù)count決定:`
`//如果count為正數(shù),且小于集合基數(shù),那么命令返回一個包含count個元素的數(shù)組,數(shù)組中的元素各不相同。`
`//如果count大于等于集合基數(shù),那么返回整個集合。`
`//如果count為負數(shù),那么命令返回一個數(shù)組,數(shù)組中的元素可能會重復(fù)出現(xiàn)多次,而數(shù)組的長度為count的絕對值。`
`$ret` `=` `$redis``->sRandMember(``'myset'``, 2);`
`//移除集合中指定的一個元素,忽略不存在的元素。刪除成功返回1,否則返回0。`
`$ret` `=` `$redis``->srem(``'myset'``,` `'hello'``);`
`//迭代集合中的元素。`
`//參數(shù):key,迭代器變量,匹配模式,每次返回元素數(shù)量(默認為10個)`
`$ret` `=` `$redis``->sscan(``'myset'``,` `$it``,` `'a*'``, 5);`
`//將指定成員從一個源集合移動到一個目的集合。若源集合不存在或不包含指定元素則不做任何操作,返回false。`
`//參數(shù):源集合,目標集合,移動元素`
`$ret` `=` `$redis``->sMove(``'myset'``,` `'myset2'``,` `'aaa'``);`
`//返回所有給定集合之間的差集,不存在的集合視為空集。`
`$ret` `=` `$redis``->sDiff(``'myset'``,` `'myset2'``,` `'myset3'``);`
`//將所有給定集合之間的差集存儲在指定的目的集合中。若目的集合已存在則覆蓋它。返回差集元素個數(shù)。`
`//參數(shù):第一個參數(shù)為目標集合,存儲差集。`
`$ret` `=` `$redis``->sDiffStore(``'myset3'``,` `'myset'``,` `'myset2'``);`
`//返回所有給定集合的交集,不存在的集合視為空集。`
`$ret` `=` `$redis``->sInter(``'myset'``,` `'myset2'``,` `'myset3'``);`
`//將所有給定集合的交集存儲在指定的目的集合中。若目的集合已存在則覆蓋它。返回交集元素個數(shù)。`
`//參數(shù):第一個參數(shù)為目標集合,存儲交集。`
`$ret` `=` `$redis``->sInterStore(``'myset4'``,` `'myset'``,` `'myset2'``,` `'myset3'``);`
`//返回所有給定集合的并集,不存在的集合視為空集。`
`$ret` `=` `$redis``->sUnion(``'myset'``,` `'myset2'``,` `'myset3'``);`
`//將所有給定集合的并集存儲在指定的目的集合中。若目的集合已存在則覆蓋它。返回并集元素個數(shù)。`
`//參數(shù):第一個參數(shù)為目標集合,存儲并集。`
`$ret` `=` `$redis``->sUnionStore(``'myset4'``,` `'myset'``,` `'myset2'``,` `'myset3'``);`
六、Zset操作
`//將一個或多個成員元素及其分數(shù)值加入到有序集當中。如果某個成員已經(jīng)是有序集的成員,則更新這個成員的分數(shù)值,并通過重新插入這個成員元素,來保證該成員在正確的位置上。分數(shù)值可以是整數(shù)值或雙精度浮點數(shù)。`
`$ret` `=` `$redis``->zAdd(``'scores'``, 98,` `'English'``, 90,` `'physics'``);`
`//返回有序集中指定區(qū)間內(nèi)的成員。成員按分數(shù)值遞增排序,分數(shù)值相同的則按字典序來排序。`
`//參數(shù):第四個參數(shù)表示是否返回各個元素的分數(shù)值,默認為false。`
`$ret` `=` `$redis``->zRange(``'scores'``, 0, -1, true);``//查看Zset所有成員以及它們各自的分數(shù)值`
`//返回有序集中指定區(qū)間內(nèi)的成員。成員按分數(shù)值遞減排序,分數(shù)值相同的則按字典序的逆序來排序。`
`$ret` `=` `$redis``->zReverseRange(``'scores'``, 0, -1, true);`
`//返回有序集中指定分數(shù)區(qū)間的成員列表,按分數(shù)值遞增排序,分數(shù)值相同的則按字典序來排序。默認使用閉區(qū)間。`
`$ret` `=` `$redis``->zRangeByScore(``'scores'``, 90, 100, [``'withscores'``=>true]);`
`//返回有序集中指定分數(shù)區(qū)間的成員列表,按分數(shù)值遞減排序,分數(shù)值相同的則按字典序的逆序來排序。注意,區(qū)間表示的時候大值在前,小值在后,默認使用閉區(qū)間。`
`$ret` `=` `$redis``->zRevRangeByScore(``'scores'``, 100, 90, [``'withscores'``=>true]);`
`//迭代有序集合中的元素。`
`//返回值:[元素名=>分數(shù)值,,..]`
`$ret` `=` `$redis``->zscan(``'scores'``,` `$it``,` `''``, 10);`
`//返回指定有序集的元素數(shù)量。`
`$ret` `=` `$redis``->zCard(``'scores'``);`
`//返回有序集中指定分數(shù)區(qū)間的成員數(shù)量。`
`$ret` `=` `$redis``->zCount(``'scores'``, 90, 100);`
`//返回有序集中指定成員的分數(shù)值。若成員不存在則返回false。`
`$ret` `=` `$redis``->zScore(``'scores'``,` `'math'``);`
`//返回有序集中指定成員的排名,按分數(shù)值遞增排序。分數(shù)值最小者排名為0。`
`$ret` `=` `$redis``->zRank(``'scores'``,` `'chemistry'``);`
`//返回有序集中指定成員的排名,按分數(shù)值遞減排序。分數(shù)值最大者排名為0。`
`$ret` `=` `$redis``->zRevRank(``'scores'``,` `'chemistry'``);`
`//移除有序集中的一個或多個成員,忽略不存在的成員。返回刪除的元素個數(shù)。`
`$ret` `=` `$redis``->zRem(``'scores'``,` `'chemistry'``,` `'English'``);`
`//移除有序集中指定排名區(qū)間的所有成員。`
`$ret` `=` `$redis``->zRemRangeByRank(``'scores'``, 0, 2);`
`//移除有序集中指定分數(shù)值區(qū)間的所有成員。`
`$ret` `=` `$redis``->zRemRangeByScore(``'scores'``, 80, 90);`
`//對有序集中指定成員的分數(shù)值增加指定增量值。若為負數(shù)則做減法,若有序集不存在則先創(chuàng)建,若有序集中沒有對應(yīng)成員則先添加,最后再操作。`
`$ret` `=` `$redis``->zIncrBy(``'scores'``, 2,` `'Chinese'``);`
`//計算給定一個或多個有序集的交集,并將其存儲到一個目的有序集中。結(jié)果集中某個成員的分數(shù)值是所有給定集下該成員分數(shù)值之和。`
`$ret` `=` `$redis``->zinterstore(``'zset3'``,` `'zset2'``,` `'zset1'``);`
`//計算給定一個或多個有序集的并集,并將其存儲到一個目的有序集中。結(jié)果集中某個成員的分數(shù)值是所有給定集下該成員分數(shù)值之和。`
`$ret` `=` `$redis``->zunionstore(``'zset3'``,` `'zset2'``,` `'zset1'``);`