Redis,redis入門指南_PHP教程

來源:互聯網
上載者:User

Redis,redis入門指南


忙裡偷閒啊...

  1 php  2 /**  3  * Description: Redis  4  * Create date:2015-10-11 17:27  5  * Author: zhaoyingnan  6  **/  7   8 /*  9 __construct,__destruct,connect,pconnect,close,ping,echo,get,set, 10 setex,psetex,setnx,getSet,randomKey,renameKey,renameNx,getMultiple,exists,delete, 11 incr,incrBy,incrByFloat,decr,decrBy,type,append,getRange,setRange,getBit, 12 setBit,strlen,getKeys,sort,sortAsc,sortAscAlpha,sortDesc,sortDescAlpha,lPush,rPush, 13 lPushx,rPushx,lPop,rPop,blPop,brPop,lSize,lRemove,listTrim,lGet, 14 lGetRange,lSet,lInsert,sAdd,sSize,sRemove,sMove,sPop,sRandMember,sContains, 15 sMembers,sInter,sInterStore,sUnion,sUnionStore,sDiff,sDiffStore,setTimeout,save,bgSave, 16 lastSave,flushDB,flushAll,dbSize,auth,ttl,pttl,persist,info,resetStat, 17 select,move,bgrewriteaof,slaveof,object,bitop,bitcount,bitpos,mset,msetnx, 18 rpoplpush,brpoplpush,zAdd,zDelete,zRange,zReverseRange,zRangeByScore,zRevRangeByScore,zCount,zDeleteRangeByScore, 19 zDeleteRangeByRank,zCard,zScore,zRank,zRevRank,zInter,zUnion,zIncrBy,expireAt,pexpire, 20 pexpireAt,hGet,hSet,hSetNx,hDel,hLen,hKeys,hVals,hGetAll,hExists, 21 hIncrBy,hIncrByFloat,hMset,hMget,multi,discard,exec,pipeline,watch,unwatch, 22 publish,subscribe,psubscribe,unsubscribe,punsubscribe,time,eval,evalsha,script,dump, 23 restore,migrate,getLastError,clearLastError,_prefix,_serialize,_unserialize,client,scan,hscan, 24 zscan,sscan,getOption,setOption,config,slowlog,getHost,getPort,getDBNum,getTimeout, 25 getReadTimeout,getPersistentID,getAuth,isConnected,wait,pubsub,open,popen,lLen,sGetMembers, 26 mget,expire,zunionstore,zinterstore,zRemove,zRem,zRemoveRangeByScore,zRemRangeByScore,zRemRangeByRank,zSize, 27 substr,rename,del,keys,lrem,ltrim,lindex,lrange,scard,srem, 28 sismember,zrevrange,sendEcho,evaluate,evaluateSha, 29  */ 30 //PHP 中 Redis 的可操作的方法 31 $ReRedis    =    new ReflectionClass('Redis'); 32 $arMethods    =    $ReRedis->getMethods(); 33 $arMethods    =    objarray_to_array($arMethods); 34 //print_r($arMethods); 35 function objarray_to_array($obj) {   36     $ret = array();   37     foreach ($obj as $key => $value) {   38         if (gettype($value) == "array" || gettype($value) == "object"){   39             $ret[$key] =  objarray_to_array($value);   40         }else{   41             $ret[$key] = $value;   42         }   43     }   44     return $ret;   45 } 46 $i    =    1; 47 foreach($arMethods as $arVal) 48     echo $arVal['name'],','; 49  50 /****************************** Redis 介紹 ************************************/ 51 //Redis,一款 記憶體快取資料庫,資料模型為 key-value 52 //Redis 可持久化,(即它會將資料儲存自硬碟中)保證了資料的安全 53 //Redis 豐富的資料類型:string,list,hash,set,sorted set 54  55  56 /****************************** Redis 和 Memcached比較 ************************/ 57 //    Redis 不僅僅支援簡單的 key-value ,同時還提供list,set,hash等資料結構的儲存 58 //    Redis 支援 master-slave(主-從)模式應用 59 //    Redis 支援資料的持久化,可以將記憶體中的資料村春在硬碟中,重啟、斷電的時候並不會遺失資料 60 //    Redis 單個 value 的最大限制的 1GB,Memcached 只能儲存 1MB 61  62  63 /****************************** Redis 中對 key 的操作 *************************/ 64 /** 65  * eixists key                    測試指定的 key 是否存在 66  * del key1 key2 key3 ...        刪除給定的 key 67  * type    key                        返回給定的 key 的 value 類型 68  * keys pattern                    返回匹配指定模式的所有的 key 69  * rename oldkeyname newkeyname    改名字 70  * dbsize                        返回當前資料庫的 key 的數量 71  * expire key seconds            為 key 設定到期時間 72  * ttl key                        返回 key 的剩餘到期時間 73  * select db-index                選擇資料庫(0-15) 74  * move key db-index            將 key 從當前資料庫移動到指定的資料庫 75  * flushdb                        刪除當前資料庫中的所有的 key 76  * flushall                        刪除所有資料庫中所有 key 77  **/ 78  79  80 /****************************** Redis 中對 string 類型的操作 ********************/ 81 /** 82  * set key value                設定 key 對應的值為 string 類型的  value 83  * mset key1 value1 key2 value2 keyN valueN    一次性設定多個 key 的值 84  * mget    key1 key2 keyN            一次性擷取多個 key 的值 85  * incr key                        對 key 的值進行自增操作,步進值為1,並返回新的值 86  * decr key                        對 key 的值進行自減操作,步進值為1,並返回新的值 87  * incrby key integer            同 incr ,但是步進值為指定的 integer ,並返回新的值 88  * decrby key integer            同 decr ,但是步進值為指定的 integer ,並返回新的值 89  * append key value                給指定的 key 對應的值追加 value 90  * substr key start end            返回截取過的 key 對應的值,包括開始和結束的位置,下標從0開始 91  **/ 92  93  94 /****************************** Redis 中對 list 類型的操作 ***********************/ 95 //list 類型是一個雙向鏈表,通過 push,pop 操作從鏈表的頭部或者尾部添加或刪除元素。 96 //應用的情境:獲得最新登入的10個使用者的資訊 97 /** 98  * lpush key value                在 key 對應的 list 的頭部添加 value 元素,返回 list 中元素的個數 99  * rpush key value                在 key 對應的 list 的尾部添加 value 元素,返回 list 中元素的個數100  * rpop key                        在 key 對應的 list 的尾部刪除一個元素,並返回該元素的內容101  * lpop key                        在 key 對應的 list 的頭部刪除一個元素,並返回該元素的內容102  * llen key                        返回 key 對應的 list 的中元素的個數,若不存在則為0,若不是 list 類型則報錯103  * lrange key start end            返回 key 對應的 list 的中指定區間內的元素,包括開始和結束的位置,下標從0開始104  * ltrim key start key            截取 list,保留指定區間內的元素105  **/106 107 108 /****************************** Redis 中對 set 類型的操作 *************************/109 //set 無序集合,每個集合的元素是不會重複的,最多可以包含2的32次方個元素(交集、並集、差集)110 //應用情境:QQ好友推薦,你和張三的共同好友111 /**112  * sadd key member                添加一個 member 元素到 key 對應的 set 集合中,成功返回1,若元素已經存在,返回0113  * sren key member1 memberN        從 key 對應的 set 集合中刪除給定的元素,成功返回1114  * scard key                    返回 key 對應的 set 集合中的元素個數115  * smembers key                    返回 key 對應的 set 集合中的所有元素,是無序的116  * sismember key member            判斷 member 在 key 對應的 set 集合中是否存在,存在返回 1,否則為0117  * smove key1 key2 member        將 key1 對應的 set 集合中的 member 移動到 key2 對應的 set 集合中118  * sinter key1 key2 keyN        返回所有給定 key 對應的 set 集合的交集119  * sunion key1 key2 keyN        返回所有給定 key 對應的 set 集合的並集120  * sdiff key1 key2 keyN            返回所有給定 key 對應的 set 集合的差集121  **/122 123 124 /****************************** Redis 中對 sorted set 類型的操作 *******************/125 //sorted set 排序的集合,與 set 集合不同,它每個集合中的每個元素都是值、權重的組合126 //應用情境:熱門排行榜127 /**128  * zadd key score member        添加元素到 key 對應的 set 集合,其中值為 member,權重為 score129  * zrem key member                刪除 key 對應的 set 集合中指定的元素 member130  * zincrby key incr member        按照 incr 幅度增加 key 對應的 set 集合中 member 元素的 score 權重值131  * zrank key member                返回指定元素 member 在 key 對應的 set 集合中的排名下標,排名按 score 小到大,下標0開132  * zrevrank key member            返回指定元素 member 在 key 對應的 set 集合中的排名下標,排名按 score 大到小,下標0開133  * zrange key start end            返回 key 對應的 set 集合中指定區間的元素的值,排序安 score 小到大,下標0開,含始末134  * zrevrange key start end        返回 key 對應的 set 集合中指定區間的元素的值,排序安 score 大到小,下標0開,含始末135  * zcard key                    返回 key 對應的 set 集合中的元素個數136  * zscore key member            返回 key 對應的 set 集合中給定的值為 member 的元素的 score 的值137  * zremrangebyrank key min max    刪除 key 對應的 set 集合中排名在給定區間的元素(按 score 小到大排序)138  **/139 140 141 /****************************** Redis 資料持久化 ************************************/142 /**143  * snap shotting 快照持久化144  *        預設開啟了該功能,一次性將 Redis 中的全部資料儲存一份在硬碟中,資料非常多的話並不適合頻繁地執行該操作145  *        redis.conf146  *            快照持久化的備份頻率(資料修改的頻率高/低,則備份頻率也高/低)147  *            save 900 1            #900 秒內如果超過 1 個 key 被修改,則發起一次快照儲存148  *            save 300 10            #300 秒內如果超過 10 個 key 被修改,則發起一次快照儲存 149  *            save 60 10000        #60 秒內如果超過 10000 個 key 被修改,則發起一次快照儲存150  *            dbfilename dump.rdb    #備份的檔案名稱151  *            dir ./                #備份檔案的儲存路徑152  *        手動發起一次快照持久化153  *            redis-cli -h 127.0.0.1 -p 6379 bgsave    #手動發起一次快照持久化154  **/155 156 /**157  * append only file AOF持久化158  *        本質:把使用者執行的每個'寫'指令都備份到檔案中,還原資料的時候其實就是執行具體的指令159  *        預設沒有開啟,開啟的時候會將 Redis 內的資料清空,使用之前先開啟160  *        redis.conf161  *            appendonly no        #預設不開啟162  *            appendfilename "appendonly.aof"    #備份檔案的名稱163  *            dir ./              #備份檔案的儲存路徑164  *        開啟 AOF 持久化時,應使用對應的設定檔重啟 Redis165  *            redis-server redis.conf166  *        AOF 持久化的備份頻率167  *            redis.conf168  *                # appendfsync always    #每次收到寫指令就會立即備份,最安全,但最慢,開銷大169  *                appendfsync everysec    #每秒鐘強製備份一次,在效能和持久化方面做了折中,預設170  *                # appendfsync no        #完全依賴作業系統,效能最好,持久化沒有保證,安全性最差171  *        為 AOF 備份檔案做最佳化壓縮處理172  *            例如將多個 incr 指令變為一個 set 指令173  *                redis-cli -h 127.0.0.1 -p 6379 bgrewriteaof   #最佳化壓縮174  **/

http://www.bkjia.com/PHPjc/1059459.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/1059459.htmlTechArticleRedis,redis入門指南 忙裡偷閒啊... 1 ? php 2 /* * 3 * Description: Redis 4 * Create date:2015-10-11 17:27 5 * Author: zhaoyingnan 6 * */ 7 8 /* 9 __construct,__destruct,c...

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.