1. 程式人生 > >PHP操作Redis常用技巧總結【轉】

PHP操作Redis常用技巧總結【轉】

一、Redis連線與認證

1 //連線引數:ip、埠、連線超時時間,連線成功返回true,否則返回false
2 $ret = $redis->connect('127.0.0.1', 6379, 30);
3 //密碼認證:成功返回true,否則返回false
4 $ret = $redis->auth('123456');

二、String操作

 1 //設定鍵值:成功返回true,否則返回false
 2 $redis->set('mystr', 'Welcome!');
 3 //獲取鍵值:成功返回String型別鍵值,若key不存在或不是String型別則返回false
4 $ret = $redis->get('mystr'); 5 //從某個key所儲存的字串的指定偏移量開始,替換為另一指定字串,成功返回替換後新字串的長度。 6 $ret = $redis->setRange('mystr', 7, ' to Beijing!'); 7 //獲取儲存在指定key中字串的子字串。 8 $ret = $redis->getRange('mystr', 0, 6); 9 //設定新值,返回舊值:若key不存在則設定值,返回false 10 $ret = $redis->getSet('mystr', 'hi man'); 11 //一次設定多個鍵值對:成功返回true。
12 $ret = $redis->mset(['name' => 'jet', 'age' => 18]); 13 //一次獲取多個key的值:返回一個鍵值對陣列,其中不存在的key值為false。 14 $ret = $redis->mget(['name', 'age']); 15 //設定指定key的值及其過期時間,單位:秒。 16 //引數:鍵名,過期時間,鍵值。成功返回true。 17 $ret = $redis->setex('name', 10, 'jetwu'); 18 //以毫秒為單位設定指定key的值和過期時間。成功返回true。 19 $ret = $redis
->psetex('name', 10, 'jetwu'); 20 //key的值不存在時,才為其設定值。key不存在且設定成功返回true,否則返回false。 21 $ret = $redis->setnx('name', 'boby'); 22 //setnx命令的批量操作。只有在給定所有key都不存在的時候才能設定成功,只要其中一個key存在,所有key都無法設定成功。 23 $ret = $redis->msetnx(['country' => 'China', 'city' => 'Shenzhen']); 24 //獲取指定key儲存的字串的長度,key不存在返回0,不為字串返回false。 25 $ret = $redis->strlen('name'); 26 //將指定key儲存的數字值增加1。若key不存在會先初始化為0再增加1,若key儲存的不是整數值則返回false。成功返回key新值。 27 $ret = $redis->incr('age'); 28 //給指定key儲存的數字值增加指定增量值。 29 $ret = $redis->incrBy('age', 10); 30 //給指定key儲存的數字值增加指定浮點數增量。 31 $ret = $redis->incrByFloat('age', 1.5); 32 //將指定key儲存的數字值減一。 33 $ret = $redis->decr('age'); 34 //將指定key儲存的數字值減去指定減量值。 35 $ret = $redis->decrBy('age', 10); 36 //為指定key追加值到原值末尾,若key不存在則相對於set()函式。 37 $ret = $redis->append('mystr', 'haha');

三、Hash操作

 1 //為hash表中的欄位賦值。成功返回1,失敗返回0。若hash表不存在會先建立表再賦值,若欄位已存在會覆蓋舊值。
 2 $ret = $redis->hSet('user', 'realname', 'jetwu');
 3 //獲取hash表中指定欄位的值。若hash表不存在則返回false。
 4 $ret = $redis->hGet('user', 'realname');
 5 //檢視hash表的某個欄位是否存在,存在返回true,否則返回false。
 6 $ret = $redis->hExists('user', 'realname');
 7 //刪除hash表的一個欄位,不支援刪除多個欄位。成功返回1,否則返回0。
 8 $ret = $redis->hDel('user', 'realname');
 9 //同時設定某個hash表的多個欄位值。成功返回true。
10 $ret = $redis->hMset('user', ['name' => 'jet', 'age' => 18]);
11 //同時獲取某個hash表的多個欄位值。其中不存在的欄位值為false。
12 $ret = $redis->hMget('user', ['name', 'age']);
13 //獲取某個hash表所有的欄位和值。
14 $ret = $redis->hGetAll('user');
15 //獲取某個hash表所有欄位名。hash表不存在時返回空陣列,key不為hash表時返回false。
16 $ret = $redis->hKeys('user');
17 //獲取某個hash表所有欄位值。
18 $ret = $redis->hVals('user');
19 //為hash表中不存在的欄位賦值。若hash表不存在則先建立,若欄位已存在則不做任何操作。設定成功返回true,否則返回false。
20 $ret = $redis->hSetNx('user', 'realname', 'jetwu');
21 //獲取某個hash表的欄位數量。若hash表不存在返回0,若key不為hash表則返回false。
22 $ret = $redis->hLen('user');
23 //為hash表中的指定欄位加上指定增量值,若增量值為負數則相當於減法操作。若hash表不存在則先建立,若欄位不存在則先初始化值為0再進行操作,若欄位值為字串則返回false。設定成功返回欄位新值。
24 $ret = $redis->hIncrBy('user', 'age', 10);
25 //為hash表中的指定欄位加上指定浮點數增量值。
26 $ret = $redis->hIncrBy('user', 'age', 1.5);

四、List操作

 1 //從list頭部插入一個值。
 2 $ret = $redis->lPush('city', 'guangzhou');
 3 //從list尾部插入一個值。
 4 $ret = $redis->rPush('city', 'guangzhou');
 5 //獲取列表指定區間中的元素。0表示列表第一個元素,-1表示最後一個元素,-2表示倒數第二個元素。
 6 $ret = $redis->lrange('city', 0, -1);//檢視佇列所有元素
 7 //將一個插入已存在的列表頭部,列表不存在時操作無效。
 8 $ret = $redis->lPushx('city', 'hangzhou');
 9 //將一個或多個值插入已存在的列表尾部,列表不存在時操作無效。
10 $ret = $redis->rPushx('city', 'hangzhou');
11 //移除並返回列表的第一個元素,若key不存在或不是列表則返回false。
12 $ret = $redis->lPop('city');
13 //移除並返回列表的最後一個元素,若key不存在或不是列表則返回false。
14 $ret = $redis->rPop('city');
15 //移除並獲取列表的第一個元素。如果列表沒有元素則會阻塞列表直到等待超時或發現可彈出元素為止。
16 //引數:key,超時時間(單位:秒)
17 //返回值:[0=>key,1=>value],超時返回[]
18 $ret = $redis->blPop('city', 10);
19 //移除並獲取列表的最後一個元素。如果列表沒有元素則會阻塞列表直到等待超時或發現可彈出元素為止。
20 //引數:key,超時時間(單位:秒)
21 //返回值:[0=>key,1=>value],超時返回[]
22 $ret = $redis->brPop('city', 10);
23 //移除列表中最後一個元素,將其插入另一個列表頭部,並返回這個元素。若源列表沒有元素則返回false。
24 $ret = $redis->rpoplpush('city', 'city2');
25 //移除列表中最後一個元素,將其插入另一個列表頭部,並返回這個元素。如果列表沒有元素則會阻塞列表直到等待超時或發現可彈出元素為止。
26 //引數:源列表,目標列表,超時時間(單位:秒)
27 //超時返回false
28 $ret = $redis->brpoplpush('city', 'city2', 10);
29 //返回列表長度。
30 $ret = $redis->lLen('city');
31 //通過索引獲取列表中的元素。若索引超出列表範圍則返回false。
32 $ret = $redis->lindex('city', 0);
33 //通過索引設定列表中元素的值。若是索引超出範圍,或對一個空列表進行lset操作,則返回false。
34 $ret = $redis->lSet('city', 2, 'changsha');
35 //在列表中指定元素前或後面插入元素。若指定元素不在列表中,或列表不存在時,不執行任何操作。
36 //引數:列表key,Redis::AFTER或Redis::BEFORE,基準元素,插入元素
37 //返回值:插入成功返回插入後列表元素個數,若基準元素不存在返回-1,若key不存在返回0,若key不是列表返回false。
38 $ret = $redis->lInsert('city', Redis::AFTER, 'changsha', 'nanjing');
39 //根據第三個引數count的值,移除列表中與引數value相等的元素。
40 //count > 0 : 從表頭開始向表尾搜尋,移除與value相等的元素,數量為count。
41 //count < 0 : 從表尾開始向表頭搜尋,移除與value相等的元素,數量為count的絕對值。
42 //count = 0 : 移除表中所有與value相等的值。
43 //返回實際刪除元素個數
44 $ret = $redis->lrem('city', 'guangzhou', -2);
45 //對一個列表進行修剪,只保留指定區間的元素,其他元素都刪除。成功返回true。
46 $ret = $redis->ltrim('city', 1, 4);

五、Set操作

 1 //將一個元素加入集合,已經存在集合中的元素則忽略。若集合不存在則先建立,若key不是集合型別則返回false,若元素已存在返回0,插入成功返回1。
 2 $ret = $redis->sAdd('myset', 'hello');
 3 //返回集合中所有成員。
 4 $ret = $redis->sMembers('myset');
 5 //判斷指定元素是否是指定集合的成員,是返回true,否則返回false。
 6 $ret = $redis->sismember('myset', 'hello');
 7 //返回集合中元素的數量。
 8 $ret = $redis->scard('myset');
 9 //移除並返回集合中的一個隨機元素。
10 $ret = $redis->sPop('myset');
11 //返回集合中的一個或多個隨機成員元素,返回元素的數量和情況由函式的第二個引數count決定:
12 //如果count為正數,且小於集合基數,那麼命令返回一個包含count個元素的陣列,陣列中的元素各不相同。
13 //如果count大於等於集合基數,那麼返回整個集合。
14 //如果count為負數,那麼命令返回一個數組,陣列中的元素可能會重複出現多次,而陣列的長度為count的絕對值。
15 $ret = $redis->sRandMember('myset', 2);
16 //移除集合中指定的一個元素,忽略不存在的元素。刪除成功返回1,否則返回0。
17 $ret = $redis->srem('myset', 'hello');
18 //迭代集合中的元素。
19 //引數:key,迭代器變數,匹配模式,每次返回元素數量(預設為10個)
20 $ret = $redis->sscan('myset', $it, 'a*', 5);
21 //將指定成員從一個源集合移動到一個目的集合。若源集合不存在或不包含指定元素則不做任何操作,返回false。
22 //引數:源集合,目標集合,移動元素
23 $ret = $redis->sMove('myset', 'myset2', 'aaa');
24 //返回所有給定集合之間的差集,不存在的集合視為空集。
25 $ret = $redis->sDiff('myset', 'myset2', 'myset3');
26 //將所有給定集合之間的差集儲存在指定的目的集合中。若目的集合已存在則覆蓋它。返回差集元素個數。
27 //引數:第一個引數為目標集合,儲存差集。
28 $ret = $redis->sDiffStore('myset3', 'myset', 'myset2');
29 //返回所有給定集合的交集,不存在的集合視為空集。
30 $ret = $redis->sInter('myset', 'myset2', 'myset3');
31 //將所有給定集合的交集儲存在指定的目的集合中。若目的集合已存在則覆蓋它。返回交集元素個數。
32 //引數:第一個引數為目標集合,儲存交集。
33 $ret = $redis->sInterStore('myset4', 'myset', 'myset2', 'myset3');
34 //返回所有給定集合的並集,不存在的集合視為空集。
35 $ret = $redis->sUnion('myset', 'myset2', 'myset3');
36 //將所有給定集合的並集儲存在指定的目的集合中。若目的集合已存在則覆蓋它。返回並集元素個數。
37 //引數:第一個引數為目標集合,儲存並集。
38 $ret = $redis->sUnionStore('myset4', 'myset', 'myset2', 'myset3');

六、Zset操作

 1 //將一個或多個成員元素及其分數值加入到有序集當中。如果某個成員已經是有序集的成員,則更新這個成員的分數值,並通過重新插入這個成員元素,來保證該成員在正確的位置上。分數值可以是整數值或雙精度浮點數。
 2 $ret = $redis->zAdd('scores', 98, 'English', 90, 'physics');
 3 //返回有序集中指定區間內的成員。成員按分數值遞增排序,分數值相同的則按字典序來排序。
 4 //引數:第四個引數表示是否返回各個元素的分數值,預設為false。
 5 $ret = $redis->zRange('scores', 0, -1, true);//檢視Zset所有成員以及它們各自的分數值
 6 //返回有序集中指定區間內的成員。成員按分數值遞減排序,分數值相同的則按字典序的逆序來排序。
 7 $ret = $redis->zReverseRange('scores', 0, -1, true);
 8 //返回有序集中指定分數區間的成員列表,按分數值遞增排序,分數值相同的則按字典序來排序。預設使用閉區間。
 9 $ret = $redis->zRangeByScore('scores', 90, 100, ['withscores'=>true]);
10 //返回有序集中指定分數區間的成員列表,按分數值遞減排序,分數值相同的則按字典序的逆序來排序。注意,區間表示的時候大值在前,小值在後,預設使用閉區間。
11 $ret = $redis->zRevRangeByScore('scores', 100, 90, ['withscores'=>true]);
12 //迭代有序集合中的元素。
13 //返回值:[元素名=>分數值,,..]
14 $ret = $redis->zscan('scores', $it, '', 10);
15 //返回指定有序集的元素數量。
16 $ret = $redis->zCard('scores');
17 //返回有序集中指定分數區間的成員數量。
18 $ret = $redis->zCount('scores', 90, 100);
19 //返回有序集中指定成員的分數值。若成員不存在則返回false。
20 $ret = $redis->zScore('scores', 'math');
21 //返回有序集中指定成員的排名,按分數值遞增排序。分數值最小者排名為0。
22 $ret = $redis->zRank('scores', 'chemistry');
23 //返回有序集中指定成員的排名,按分數值遞減排序。分數值最大者排名為0。
24 $ret = $redis->zRevRank('scores', 'chemistry');
25 //移除有序集中的一個或多個成員,忽略不存在的成員。返回刪除的元素個數。
26 $ret = $redis->zRem('scores', 'chemistry', 'English');
27 //移除有序集中指定排名區間的所有成員。
28 $ret = $redis->zRemRangeByRank('scores', 0, 2);
29 //移除有序集中指定分數值區間的所有成員。
30 $ret = $redis->zRemRangeByScore('scores', 80, 90);
31 //對有序集中指定成員的分數值增加指定增量值。若為負數則做減法,若有序集不存在則先建立,若有序集中沒有對應成員則先新增,最後再操作。
32 $ret = $redis->zIncrBy('scores', 2, 'Chinese');
33 //計算給定一個或多個有序集的交集,並將其儲存到一個目的有序集中。結果集中某個成員的分數值是所有給定集下該成員分數值之和。
34 $ret = $redis->zinterstore('zset3', 'zset2', 'zset1');
35 //計算給定一個或多個有序集的並集,並將其儲存到一個目的有序集中。結果集中某個成員的分數值是所有給定集下該成員分數值之和。
36 $ret = $redis->zunionstore('zset3', 'zset2', 'zset1');

 

一、Redis連線與認證

?
1 2 3 4 //連線引數:ip、埠、連線超時時間,連線成功返回true,否則返回false $ret = $redis ->connect( '127.0.0.1' , 6379, 30); //密碼認證:成功返回true,否則返回false $ret = $redis ->auth( '123456' );

二、String操作

?
1 2 3 4 5 6 7 8 9 10 11 12

相關推薦

PHP操作Redis常用技巧總結

一、Redis連線與認證 1 //連線引數:ip、埠、連線超時時間,連線成功返回true,否則返回false 2 $ret = $redis->connect('127.0.0.1', 6379, 30); 3 //密碼認證:成功返回true,否則返回false 4 $ret = $redis-

PHP操作Redis常用技巧總結

一、Redis連線與認證 1 2 3 4

Git常用命令總結

mda 同時 owa rem resolve fff gin spl 包含 轉自:http://www.cnblogs.com/mengdd/p/4153773.html 查看、添加、提交、刪除、找回,重置修改文件 git help <command> #

Redis資料"丟失"討論及規避和解決的幾點總結

轉自 https://blog.csdn.net/shangyuanlang/article/details/81297970 Redis大部分應用場景是純快取服務,請求後端有Primary Storage的元件,如MySQL,HBase;請求Redis的鍵未命中,會從primary Sto

30個php操作redis常用方法程式碼例子

redis的操作很多的,以前看到一個比較全的部落格,但是現在找不到了。查個東西搜半天,下面整理一下php處理redis的例子,個人覺得常用一些例子。下面的例子都是基於php-redis這個擴充套件的。 1,connect 描述:例項連線到一個Redi

office常用技巧總結excel篇

前言:總以為自己對office很熟,其實弱爆了1. excel的單元格內部如何(刪除)換行(excel 2010)換行:【Alt】+【Enter】刪除換行:【ctrl】+【H】,出現【查詢和替換】選項卡 ->                  【替換內容】專案,輸入【c

影象處理常用插值方法總結

常用的插值方法 1、最鄰近元法 這是最簡單的一種插值方法,不需要計算,在待求象素的四鄰象素中,將距離待求象素最近的鄰象素灰度賦給待求象素。設i+u, j+v(i, j為正整數, u, v為大於零小於1的小數,下同)為待求象素座標,則待求象素灰度的值 f(i+u, j+v) 如下圖所示

php操作redis常用方法

1.connect 連線redis 成功返回true,失敗返回false <?php $redis = new redis(); $result = $redis->connect('127.0.0.1', 6379); var_dump($result);

php操作redis常用方法程式碼例子

1,connect 描述:例項連線到一個Redis. 引數:host: string,port: int 返回值:BOOL 成功返回:TRUE;失敗返回:FALSE 示例: 複製程式碼程式碼如下: <?php   $redis = new redis();

php操作redis常用方法及程式碼例項

connect 描述:例項連線到一個Redis. 引數:host: string,port: int 返回值:BOOL 成功返回:TRUE;失敗返回:FALSE 示例: 複製程式碼程式碼如下: <?php   $redis = new redis();  

用戶空間與內核空間,進程上下文與中斷上下文[總結]

存儲器 com ont article 模式 tab 用戶代碼 ssi 而在 轉自:http://blog.csdn.net/lizuobin2/article/details/51791863 本文轉載自:http://www.cnblogs.com/Anker/p/3

vs 2015常用快捷鍵

調試 狀態 文章 block 麻煩 插入 lock 行號 斷點 一、基礎快捷鍵 1.回到上一個光標位置/前進到下一個光標位置   1)回到上一個光標位置:使用組合鍵“Ctrl + -”;   2)前進到下一個光標位置:“Ctrl + Shift + - ”。 2.復制/剪

C#高級編程六十六天----表達式樹總結

reac ins method 有一個 創建 exc environ 開始 定義變量 https://blog.csdn.net/shanyongxu/article/details/47257139 表達式樹總結 基礎 表達式樹提供了一個將可執行代碼轉換成數據

11條最全面的C/C++編碼規範總結

(轉自:https://blog.csdn.net/zang141588761/article/details/50608736) 對於不同的程式語言來說,具體的編碼規範可以有很大的不同,但是其宗旨都是一致的,就是保證程式碼在高質量完成需求的同時具備良好的可讀性、可維護性。例如我們可以

C++中STL用法總結

(轉自:https://blog.csdn.net/piaoxuezhong/article/details/54348787?utm_source=blogxgwz8) 1.1 什麼是STL? STL(Standard Template Library),即標準模板庫,是一個具有工業強度的

C++ vector型別要點總結

(轉自:https://blog.csdn.net/suool/article/details/13295439?utm_source=blogxgwz22)   概述 C++內建的陣列支援容器的機制,但是它不支援容器抽象的語義。要解決此問題我們自己實現這樣的類。在標準C++中

Redis常見問題總結精華

常見問題: 1、為什麼使用redis (一)效能 我們在碰到需要執行耗時特別久,且結果不頻繁變動的SQL,就特別適合將執行結果放入快取。這樣,後面的請求就去快取中讀取,使得請求能夠迅速響應。 (二)併發 在大併發的情況

ORACLE常用函式彙總

前一段時間學習Oracle 時做的學習筆記,整理了一下,下面是分享的Oracle常用函式的部分筆記,以後還會分享其他部分的筆記,請大家批評指正。 1.Oracle 資料庫中的to_date()函式的使用:   往emp表中插入一條記錄: SQL> insert into emp

高通平臺讀寫nv總結

本文轉載自:https://blog.csdn.net/suofeng12345/article/details/52713993 一,引言      1. 什麼是NV      &nbs

strerror函式的總結

本文轉載自:https://www.cnblogs.com/xrcun/p/3210889.html 定義函式:char * strerror(int errnum); 函式說明:strerror()用來依引數errnum 的錯誤程式碼來查詢其錯誤原因的描述字串, 然後將該字串指標返回. 返回值:返