好湿?好紧?好多水好爽自慰,久久久噜久噜久久综合,成人做爰A片免费看黄冈,机机对机机30分钟无遮挡

主頁 > 知識庫 > php操作redis數據庫常見方法實例總結

php操作redis數據庫常見方法實例總結

熱門標簽:嘟嘟云外呼系統 正規電銷機器人系統 重慶外呼電銷系統多少錢 南寧電話外呼系統線路 邢臺400電話辦理 濟源百應電銷機器人聯系方式 辦理400電話哪家好點 咸陽電銷 南京3D地圖標注

本文實例講述了php操作redis數據庫常見方法。分享給大家供大家參考,具體如下:

一、安裝php_redis擴展,用以操作redis

http://pecl.php.net/package/redis

選擇自已系統php版本對應的擴展。

二、redis連接與驗證

?php
//創建一個redis客戶端
$redis = new Redis();
//連接redis服務,指定主機,端口,和超時時間
$redis->connect('127.0.0.1', 6379, 60);
//進行密碼驗證
$redis->auth('');

三、redis的字符串(string)操作

//設置鍵的值,成功返回true,失敗返回false
$ret = $redis->set('app_id', '1234567890');
var_dump($ret);
//獲取鍵的值,成功返回鍵值,失敗返回false
$ret = $redis->get('app_id');
var_dump($ret);
//設置鍵的值從指定偏移量開始,替換成指定字符串,成功返回新字符串的長度
$ret = $redis->setRange('app_id', 2, '666');
var_dump($ret);
//獲取鍵的值,通過開始索引和結束索引,獲取的子符串包括開始索引和結束索引
$ret = $redis->getRange('app_id', 0, -1);
var_dump($ret);
$ret = $redis->getRange('app_id', 3, 6);
var_dump($ret);
//設置新值,返回舊值,如果key不存在,則設置值,返回false
$ret = $redis->getSet('app_id', '666666666');
var_dump($ret);
//一次設置多個鍵值對
$ret = $redis->mset(['db_name' => 'test', 'db_host' => 'localhost']);
var_dump($ret);
//一次獲取多個鍵值對,返回一個數組
$ret = $redis->mget(['db_name', 'db_host']);
var_dump($ret);
//設置鍵值,和過期時間,單位:秒,成功返回true
$ret = $redis->setex('name', 10, 'hello');
var_dump($ret);
//設置鍵值,過期時間以毫秒為單位
$ret = $redis->psetex('age', 10, '28');
var_dump($ret);
//key不存在時,才設置值,key不存在且設置成功返回true,否則返回false
$ret = $redis->setnx('name', 'test');
var_dump($ret);
//setnx的批量操作,只有在所有key都不存在時才能設置成功,否則,有一個key存在,所有key都無法設置成功
$ret = $redis->msetnx(['name' => 'hello', 'age' => '28', 'sex' => '男']);
var_dump($ret);
//獲取鍵值的字符串長度,如果key不存在,返回0,如果值不為字符串返回false
$ret = $redis->strlen('name');
var_dump($ret);
//將key中存儲的數字值加1,如果key不存在先初始為0再加1,如果存儲的不是數字值,則返回false,成功返回新增值
$ret = $redis->incr('age');
var_dump($ret);
//將key中存儲的數字值加指定增量值
$ret = $redis->incrBy('age', 10);
var_dump($ret);
//將key中存儲的數字值加指定浮點增量值
$ret = $redis->incrByFloat('age', 0.25);
var_dump($ret);
//將key中存儲的數字值減1
$ret = $redis->decr('age');
var_dump($ret);
//將key中存儲的數字值減指定減量值
$ret = $redis->decrBy('age', 10);
var_dump($ret);
//給指定key的值,追加值到原值末尾,如果key不存在,則相當于set()函數
$ret = $redis->append('name', 'hahaha');
var_dump($ret);

四、redis的哈希(hash)操作

//設置hash表中的鍵值,成功返回1,失敗返回0
$ret = $redis->hSet('user', 'name', 'xiaoxu');
var_dump($ret);
//獲取hash表中鍵的值,如果hash表中不存在,則返回false
$ret = $redis->hget('user', 'name');
var_dump($ret);
//判斷hash表中字段是否存在,存在返回true,失敗返回false
$ret = $redis->hExists('user', 'name');
var_dump($ret);
//刪除hash表中的字段,成功返回1,失敗返回0
$ret = $redis->hDel('user', 'name');
var_dump($ret);
//批量設置hash表中字段的值,成功返回true
$ret = $redis->hMSet('user', ['name' => 'xiaoxu', 'age' => 28, 'sex' => '男']);
var_dump($ret);
//批量獲取hash表中字段的值
$ret = $redis->hMGet('user', ['name', 'age', 'sex']);
var_dump($ret);
//獲取hash表中所有字段和值
$ret = $redis->hGetAll('user');
var_dump($ret);
//獲取hash表中所有字段名,hash不存在時返回空數組
$ret = $redis->hKeys('user');
var_dump($ret);
//獲取hash表中所有字段值
$ret = $redis->hVals('user');
var_dump($ret);
//當hash表中字段不存在時,設置值。如果hash表不存在先創建,若字段存在,不作任何操作。
//設置成功返回true,否則返回false
$ret = $redis->hSetNx('user', 'height', 172);
var_dump($ret);
//獲取hash表的字段數量,hash不存在返回0
$ret = $redis->hlen('user');
var_dump($ret);
//為hash表中字段值增加指定增量值,如果增量值為負數,則相當于減法操作
//hash表不存在則先創建,字段不存在則初始為0,若字段值為字符串,則返回false
$ret = $redis->hIncrBy('user', 'age', 10);
var_dump($ret);
//為hash表中字段值增加指定浮點增量值
$ret = $redis->hIncrByFloat('user', 'age', 0.25);
var_dump($ret);

五、redis的列表(list)操作

//從列表頭部插入一個值
$ret = $redis->lpush('students', 'xiaoxu');
$ret = $redis->lpush('students', 'xiaoxu2');
var_dump($ret);
//從列表尾部插入一個值
$ret = $redis->rpush('students', 'xiaowang');
$ret = $redis->rpush('students', 'xiaowang2');
var_dump($ret);
//獲取列表指定范圍內的元素,0表示第一個元素,-1表示最后一個元素
$ret = $redis->lRange('students', 0, -1);
var_dump($ret);
//將一個值插入到已存在的列表頭部,列表不存在時操作無效。
$ret = $redis->lPushx('students', 'xiaozhang');
var_dump($ret);
//將一個值插入到已存在的列表尾部,列表不存在時操作無效。
$ret = $redis->rPushx('students', 'xiaoli');
var_dump($ret);
//移出并獲取列表的第一個元素,若key不存在或不是列表則返回false。
$ret = $redis->lpop('students');
var_dump($ret);
//移出并獲取列表的最后一個元素,若key不存在或不是列表則返回false。
$ret = $redis->rpop('students');
var_dump($ret);
//移出并獲取列表的第一個元素,如果列表沒有元素會阻塞列表直到等待超時或發現可彈出元素為止。
//超時時間單位:秒
$ret = $redis->blPop('students', 10);
var_dump($ret);
//移出并獲取列表的最后一個元素,如果列表沒有元素會阻塞列表直到等待超時或發現可彈出元素為止。
$ret = $redis->brPop('students', 10);
var_dump($ret);
//移除列表中最后一個元素,將其插入另一個列表頭部,并返回這個元素。若源列表沒有元素則返回false。
$ret = $redis->rpoplpush('students', 'students2');
var_dump($ret);
//移除列表中最后一個元素,將其插入另一個列表頭部,并返回這個元素。
//如果列表沒有元素則會阻塞列表直到等待超時或發現可彈出元素為止。
//超時時間單位:秒
$ret = $redis->brpoplpush('students', 'students2', 10);
var_dump($ret);
//獲取列表的長度
$ret = $redis->lLen('students2');
var_dump($ret);
//通過索引獲取列表中的元素。若索引超出列表范圍則返回false。
$ret = $redis->lIndex('students2', 0);
var_dump($ret);
//通過索引設置列表中元素的值。若是索引超出范圍,或對一個空列表進行lset操作,則返回false。
$ret = $redis->lSet('students2', 0, 'xiaomi');
var_dump($ret);
//在列表中指定元素前或后面插入元素。若指定元素不在列表中,或列表不存在時,不執行任何操作。
//參數:列表的key,Redis::AFTER或Redis::BEFORE,基準元素,插入元素
//返回值:插入成功返回插入后列表元素個數,若基準元素不存在返回-1,若key不存在返回0,若key不是列表返回false。
$ret = $redis->lInsert('students2', Redis::AFTER, 'xiaomi', 'xiaoji');
var_dump($ret);
//根據第三個參數count的值,移除列表中與參數value相等的元素。
//count > 0 : 從表頭開始向表尾搜索,移除與value相等的元素,數量為count。
//count  0 : 從表尾開始向表頭搜索,移除與value相等的元素,數量為count的絕對值。
//count = 0 : 移除表中所有與value相等的值。
//返回實際刪除元素個數
$ret = $redis->lrem('students2', 'xiaomi', 0);
var_dump($ret);
//對列表進行修剪,只保留指定區間的元素,其他元素都刪除。成功返回true。
$ret = $redis->ltrim('students2', 0, -1);
var_dump($ret);

六、redis的集合(set)操作

//向集合添加一個或多個成員
//若集合不存在則先創建,若key不是集合類型則返回false
//若元素已存在返回0,插入成功返回1。
$ret = $redis->sAdd('friend', 'xiaoxu', 'xiaowang', 'xiaoli', 'xiaozhang');
var_dump($ret);
//返回集合中所有成員。
$ret = $redis->sMembers('friend');
var_dump($ret);
//判斷元素是否是集合key的成員
$ret = $redis->sIsMember('friend', 'xiaoxu');
var_dump($ret);
//返回集合中成員的數量。
$ret = $redis->scard('friend');
var_dump($ret);
//移除并返回集合中的一個隨機元素
$ret = $redis->spop('friend');
var_dump($ret);
//返回集合中的一個或多個隨機成員元素,返回元素的數量和情況由函數的第二個參數count決定:
//如果count為正數,且小于集合基數,那么命令返回一個包含count個元素的數組,數組中的元素各不相同。
//如果count大于等于集合基數,那么返回整個集合。
//如果count為負數,那么命令返回一個數組,數組中的元素可能會重復出現多次,而數組的長度為count的絕對值。
$ret = $redis->sRandMember('friend', 2);
var_dump($ret);
//移除集合中指定的一個元素,忽略不存在的元素。刪除成功返回1,否則返回0。
$ret = $redis->sRem('friend', 'xiaowang');
var_dump($ret);
//迭代集合中的元素
//參數:集合的key,迭代器變量,匹配模式,每次返回元素數量(默認為10個)
$ret = $redis->sScan('friend', $iter, 'xiao*', 5);
var_dump($ret);
var_dump($iter);
//將指定成員從一個源集合移動到一個目的集合。
//若源集合不存在或不包含指定元素則不做任何操作,返回false。
//參數:源集合,目標集合,移動元素
$ret = $redis->sMove('friend', 'friend2', 'xiaoxu');
var_dump($ret);
//返回所有給定集合之間的差集,不存在的集合視為空集。
$ret = $redis->sDiff('friend', 'friend2');
var_dump($ret);
//將所有給定集合之間的差集存儲在指定的目的集合中。
//若目的集合已存在則覆蓋它。返回差集元素個數。
//參數:第一個參數為目標集合,存儲差集。
$ret = $redis->sDiffStore('friend3', 'friend2', 'friend');
var_dump($ret);
//返回所有給定集合的交集,不存在的集合視為空集。
$ret = $redis->sInter('friend', 'friend2');
var_dump($ret);
//將所有給定集合的交集存儲在指定的目的集合中。
//若目的集合已存在則覆蓋它。返回交集元素個數。
//參數:第一個參數為目標集合,存儲交集。
$ret = $redis->sInterStore('friend4', 'friend2', 'friend');
var_dump($ret);
//返回所有給定集合的并集,不存在的集合視為空集。
$ret = $redis->sUnion('friend', 'friend2');
var_dump($ret);
//將所有給定集合的并集存儲在指定的目的集合中。
//若目的集合已存在則覆蓋它。返回并集元素個數。
//參數:第一個參數為目標集合,存儲并集。
$ret = $redis->sUnionStore('friend5', 'friend2', 'friend');
var_dump($ret);

七、redis的有序集合(sorted set)操作

//將一個或多個成員元素及其分數值加入到有序集當中。
//如果某個成員已經是有序集的成員,則更新這個成員的分數值,并通過重新插入這個成員元素,來保證該成員在正確的位置上。
//分數值可以是整數值或雙精度浮點數。
$ret = $redis->zadd('scores', 60, 'math', 80, 'english', 75, 'chinese');
var_dump($ret);
//返回有序集中指定區間內的成員。成員按分數從小到大排序,分數值相同的則按字典序來排序。
//參數:第四個參數表示是否返回各個元素的分數值,默認為false。
$ret = $redis->zRange('scores', 0, -1, true);
var_dump($ret);
//返回有序集中指定區間內的成員。成員按分數值從大到小排序,分數值相同的則按字典序的逆序來排序。
$ret = $redis->zRevRange('scores', 0, -1, true);
var_dump($ret);
//返回有序集中指定分數區間的成員列表,按分數值從小到大排序,
//分數值相同的則按字典序來排序。默認使用閉區間。
$ret = $redis->zRangeByScore('scores', 60, 90, ['withscores' => true]);
var_dump($ret);
//返回有序集中指定分數區間的成員列表,按分數值遞減排序,
//分數值相同的則按字典序的逆序來排序。
//注意,區間表示的時候大值在前,小值在后,默認使用閉區間。
$ret = $redis->zRevRangeByScore('scores', 90, 60, ['withscores' => true]);
var_dump($ret);
//迭代有序集合中的元素。
//返回值:[元素名 => 分數值, ...]
$ret = $redis->zScan('scores', $iter, '*', 10);
var_dump($ret);
var_dump($iter);
//返回指定有序集的元素數量。
$ret = $redis->zCard('scores');
var_dump($ret);
//返回有序集中指定分數區間的成員數量。
$ret = $redis->zCount('scores', 60, 90);
var_dump($ret);
//返回有序集中指定成員的分數值。若成員不存在則返回false。
$ret = $redis->zScore('scores', 'english');
var_dump($ret);
//返回有序集中指定成員的排名,按分數值從小到大排序。分數值最小者排名為0。
$ret = $redis->zRank('scores', 'english');
var_dump($ret);
//返回有序集中指定成員的排名,按分數值從大到小排序。分數值最大者排名為0。
$ret = $redis->zRevRank('scores', 'english');
var_dump($ret);
//移除有序集中的一個或多個成員,忽略不存在的成員。返回刪除的元素個數。
$ret = $redis->zRem('scores', 'english');
var_dump($ret);
//移除有序集中指定排名區間的所有成員。
$ret = $redis->zRemRangeByRank('scores', 0, 2);
var_dump($ret);
//移除有序集中指定分數值區間的所有成員。
$ret = $redis->zRemRangeByScore('scores', 60, 90);
var_dump($ret);
//對有序集中指定成員的分數值增加指定增量值。
//若為負數則做減法,若有序集不存在則先創建,若有序集中沒有對應成員則先添加,最后再操作。
$ret = $redis->zIncrBy('scores', 2, 'chinese');
var_dump($ret);
//計算給定一個或多個有序集的交集,并將其存儲到一個目的有序集中。
//參數:目的有序集合,多個有序集合,多個有序集合的權重,合并有序集合的方式(成員的分數值與權重相乘后的是相加或是比較大小)
$redis->zAdd('s1', 1, '111');
$redis->zAdd('s1', 2, '222');
$redis->zAdd('s1', 3, '333');
$redis->zAdd('s2', 4, '222');
$redis->zAdd('s2', 5, '333');
$ret = $redis->zInter('s3', ['s1', 's2'], [1, 5], 'SUM');
// ['222' => 22, '333' => 28]
var_dump($ret);
$ret = $redis->zInter('s4', ['s1', 's2'], [1, 5], 'MIN');
// ['222' => 2, '333' => 3]
var_dump($ret);
$ret = $redis->zInter('s5', ['s1', 's2'], [1, 5], 'MAX');
// ['222' => 20, '333' => 25]
var_dump($ret);
//計算給定一個或多個有序集的并集,并將其存儲到一個目的有序集中。
//結果集中某個成員的分數值是所有給定集下該成員分數值之和。
$ret = $redis->zUnion('s6', ['s1', 's2'], [5, 1], 'SUM');
// ['111' => 5, '222' => 14, '333' => 20]
var_dump($ret);
$ret = $redis->zUnion('s7', ['s1', 's2'], [5, 1], 'MIN');
// ['222' => 4, '111' => 5, '333' => 5]
var_dump($ret);
$ret = $redis->zUnion('s8', ['s1', 's2'], [5, 1], 'MAX');
// ['111' => 5, '222' => 10, '333' => 15]
var_dump($ret);

更多關于PHP相關內容感興趣的讀者可查看本站專題:《php+redis數據庫程序設計技巧總結》、《php面向對象程序設計入門教程》、《PHP基本語法入門教程》、《PHP數組(Array)操作技巧大全》、《php字符串(string)用法總結》、《php+mysql數據庫操作入門教程》及《php常見數據庫操作技巧匯總》

希望本文所述對大家PHP程序設計有所幫助。

您可能感興趣的文章:
  • ThinkPHP3.2框架操作Redis的方法分析
  • php成功操作redis cluster集群的實例教程
  • PHP操作Redis數據庫常用方法示例
  • PHP操作redis實現的分頁列表,新增,刪除功能封裝類與用法示例
  • PHP操作Redis常用技巧總結
  • PHP實現操作redis的封裝類完整實例
  • php操作redis緩存方法分享
  • php操作redis中的hash和zset類型數據的方法和代碼例子
  • 30個php操作redis常用方法代碼例子
  • php操作redis常見方法示例【key與value操作】

標簽:黃山 通遼 隴南 南通 唐山 平頂山 河南 武漢

巨人網絡通訊聲明:本文標題《php操作redis數據庫常見方法實例總結》,本文關鍵詞  php,操作,redis,數據庫,常見,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《php操作redis數據庫常見方法實例總結》相關的同類信息!
  • 本頁收集關于php操作redis數據庫常見方法實例總結的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 日韩精品国产自在久久现线拍| 99久久精品国产高一区一区三区 | 免费看的黄色小视频| 人人澡人人 碰人人看欧美 | 美女黄色大片| 私密按摩日本A?免费视频在线 | 法国性视频| 揉胸视频动漫无遮挡| 777在线精品永久观看入口| 一对一真人直播| 日本亚洲色图| 强制调教吹潮不断h| 被窝伦理电线看| 999久久66久6只有精品| 校花下面被啪出水漫画| 韩国无删减漫画| 女人18片毛片90分钟| 林熙蕾做爰猛烈叫床戏片段 | 先生涌西| 亚洲欧美一级夜夜爽| 国产小视频在线高清播放| 99se国产高清视频在线观看| 张筱雨两腿玉门打开| 现代辣文| 爽爽视频在线观看| 成品在线小说免费入口| free性avjapan| 北岛玲在厨房被猛烈进入| 啊啊啊慢点| 国产情侣一区二区三区| 98在线无码精品秘?入口男同| 精品人妻一区二区三区浪潮无限| 中日韩视频在线看免费观看| 催眠娇喘呻吟欲死唐紫尘| 波多野结衣之欲乱电影剧情介绍| 欧美狂野成人AV| 国产精品成aⅴ人片在线观看| 国产午夜久久影院| 王雨纯脱得一点不剩| 丁香色欲久久久久久A片| 苹果在线播放|