PHP操作Redis常用命令的實(shí)例詳解
redis常用命令有:
1、連接操作命令;
2、持久化命令;
3、遠(yuǎn)程服務(wù)控制命令;
4、對(duì)value操作命令;5、string命令;
6、list命令;
7、set命令;
8、hash命令等等。
Redis 常用命令
登錄 redis-cli -p 5566 -a password
檢查key是否存在 EXISTS key
搜索某關(guān)鍵字 KSYS *4
返回一個(gè)Key所影響的vsl的類型 TYPE key
下面通過代碼看下PHP操作Redis命令,代碼如下所示:
//連接本地的 Redis 服務(wù) $redis = new Redis(); $redis->connect('127.0.0.1', 6379); $redis->auth('123456'); /*********************Key(鍵)*********************/ //DEL key [key ...]------刪除給定的一個(gè)或多個(gè)key $a = $redis->del(array('xrj','ly','fjf')); //KEYS pattern------查找所有符合給定模式pattern的key $b = $redis->keys('*'); //RANDOMKEY------從當(dāng)前數(shù)據(jù)庫中隨機(jī)返回(不刪除)一個(gè)key $c = $redis->randomkey(); //TTL key------以秒為單位,返回給定key的剩余生存時(shí)間(TTL, time to live) //PTTL key------以毫秒為單位,返回給定key的剩余生存時(shí)間 $d = $redis->ttl('bbs'); //EXISTS key------檢查給定key是否存在,存在,返回1,否則返回0 $e = $redis->exists('email'); //MOVE key db------將當(dāng)前數(shù)據(jù)庫的key移動(dòng)到給定的數(shù)據(jù)庫db當(dāng)中 $f = $redis->move('email',1); $redis->select(1); $f = $redis->keys('*'); $f = $redis->move('email',0); //RENAME key newkey------將key改名為newkey $g = $redis->rename('email','e-eamil.com'); $g = $redis->rename('e-eamil.com','eamil'); //RENAMENX key newkey------當(dāng)且僅當(dāng)newkey不存在時(shí),將key改名為newkey $h = $redis->renamenx('bbs','bbs1'); //TYPE key------返回key所儲(chǔ)存的值的類型 $i = $redis->type('pageview'); //EXPIRE key seconds------給key設(shè)置生存時(shí)間,當(dāng)key過期時(shí),它會(huì)被自動(dòng)刪除 //PEXPIRE key milliseconds------以毫秒為單位設(shè)置key的生存時(shí)間 //EXPIREAT key timestamp------命令接受的時(shí)間參數(shù)是UNIX時(shí)間戳,key存活到一個(gè)unix時(shí)間戳?xí)r間 //PERSIST key------移除給定key的生存時(shí)間,轉(zhuǎn)換成一個(gè)不帶生存時(shí)間,永不過期的key //SORT key [BY pattern] [LIMIT offset count] [GET pattern [GET pattern ...]] [ASC | DESC] [ALPHA] [STORE destination]------返回或保存給定列表、集合、有序集合key中經(jīng)過排序的元素 /****************String(字符串)相關(guān)操作***************/ //SET key value------將字符串值value關(guān)聯(lián)到key,會(huì)覆蓋 $a = $redis->set('email','jiang@58haha.cn'); //SETNX key value------將key的值設(shè)為value,當(dāng)且僅當(dāng)key不存在的時(shí)候,成功返回1,不成功返回0 $b = $redis->setnx('email','jiang@58haha.cn'); //SETEX key seconds value------將值value關(guān)聯(lián)到key,并將key的生存時(shí)間設(shè)為seconds(以秒為單位) $c = $redis->setex('name',10086,'江'); //PSETEX key milliseconds value------命令和SETEX命令相似,它以毫秒為單位設(shè)置key的生存時(shí)間 $d = $redis->psetex('jiang',90000,'哈哈哈'); //MSET key value [key value ...]------同時(shí)設(shè)置一個(gè)或多個(gè)key-value對(duì) $e = $redis->mset(array('ly' => 'liyang', 'fjf' => 'fengjingfeng')); //MSETNX key value [key value ...]------同時(shí)設(shè)置一個(gè)或多個(gè)key-value對(duì),當(dāng)且僅當(dāng)所給定key都不存在 $f = $redis->msetnx(array('ly' => 'liyang', 'xrj'=>'xingrongjiang', 'fjf' => 'fengjingfeng')); //APPEND key value------如果key已經(jīng)存在并且是一個(gè)字符串,APPEND命令將value追加到key原來的值的末尾。如果key不存在,APPEND就像執(zhí)行SET key value一樣 $g = $redis->append('ly','love'); //GET key------返回key所關(guān)聯(lián)的字符串值,如果key不存在那么返回特殊值nil,GET只能用于處理字符串值 $h = $redis->get('ly'); //MGET key [key ...]------返回所有(一個(gè)或多個(gè))給定key的值,如果給定的key里面有某個(gè)key不存在,那么這個(gè)key返回特殊值nil,命令永不失敗 $i = $redis->mget(array('email','ly','fjf')); //GETRANGE key start end------返回key中字符串值的子字符串,字符串的截取范圍由start和end兩個(gè)偏移量決定(包括start和end在內(nèi)),負(fù)數(shù)偏移量表示從字符串最后開始計(jì)數(shù),-1表示最后一個(gè)字符,-2表示倒數(shù)第二個(gè) $j = $redis->getrange('email',0,-1); //從第一個(gè)到最后一個(gè),相當(dāng)于直接get //GETSET key value------將給定key的值設(shè)為value,并返回key的舊值(old value) $k = $redis->getset('email','jiangzunshao@163.com'); //STRLEN key------返回key所儲(chǔ)存的字符串值的長(zhǎng)度 $l = $redis->strlen('email'); //DECR key------將key中儲(chǔ)存的數(shù)字值減一,如果key不存在,那么key的值會(huì)先被初始化為0,然后再執(zhí)行DECR操作 $m = $redis->decr('pageview'); //INCR key------將key中儲(chǔ)存的數(shù)字值增一,如果key不存在,那么key的值會(huì)先被初始化為0,然后再執(zhí)行INCR操作 $n = $redis->incr('pageview1'); //DECRBY key decrement------將key所儲(chǔ)存的值減去減量decrement(可以為負(fù)值) $o = $redis->decrby('pageview',3); //INCRBY key increment------將key所儲(chǔ)存的值加上增量increment(可以為負(fù)值) $p = $redis->incrby('pageview',6); /****************Hash(哈希表)相關(guān)操作***************/ //HSET key field value------將哈希表key中的域field的值設(shè)為value,新建返回1,覆蓋返回0 $a = $redis->hset("user","jiang@58haha.cn","{'name':'jiangzunshao','age':25,'work':'php','city':'BeiJing'}"); //HSETNX key field value------將哈希表key中的域field的值設(shè)置為value,當(dāng)且僅當(dāng)域field不存在的時(shí)候. 設(shè)置成功,返回1。如果已經(jīng)存在且沒有操作被執(zhí)行,返回0 $b = $redis->hsetnx("user","jiang@58haha.cn","{'name':'jiangzunshao','age':25,'work':'php','city':'BeiJing'}"); //HGET key field------返回哈希表key中給定域field的值 $c = $redis->hget("user","jiang@58haha.cn"); //HMSET key field value [field value ...]------同時(shí)將多個(gè)field-value(域-值)對(duì)設(shè)置到哈希表 key中 $d = $redis->hmset('user',array('name'=>'jiangzunshao', 'age' => 20)); //HMGET key field [field ...]------返回哈希表 key中,一個(gè)或多個(gè)給定域的值 $f = $redis->hmGet('user', array('name', 'age')); //HGETALL key------返回哈希表key中,所有的域和值 $g = $redis->hgetall('user'); //HDEL key field [field ...]------刪除哈希表key中的一個(gè)或多個(gè)指定域,不存在的域?qū)⒈缓雎? $h = $redis->hdel('user','age'); //HLEN key------返回哈希表key中域的數(shù)量 $i = $redis->hlen('user'); //HEXISTS key field------查看哈希表key中,給定域field是否存在,存在返回1,不存在返回0 $g = $redis->hexists('user','jiang@58haha.cn'); //HINCRBY key field increment------為哈希表key中的域field的值加上增量increment,可以為負(fù) $k = $redis->hincrby('user','pv',5); //HKEYS key------返回哈希表key中的所有域 $l = $redis->hkeys('user'); //HVALS key------返回哈希表key中所有域的值 $m = $redis->hvals('user'); /****************List(列表)相關(guān)操作***************/ //LPUSH key value [value ...]------將數(shù)據(jù)插入列表的頭部 $redis->lpush('dbs','mongodb-3.2'); //RPUSH key value [value ...]------將數(shù)據(jù)插入列表的尾部 $redis->rpush('dbs','redis'); //LLEN key------獲取列表的長(zhǎng)度 $c = $redis->llen('dbs'); //LPOP key------移除并返回列表的頭元素 $d = $redis->lpop('dbs'); //RPOP key------移除并返回列表的尾元素 $e = $redis->rpop('dbs'); //LRANGE key start stop------返回列表中指定區(qū)間內(nèi)元素 $f = $redis->lrange('dbs',0,$redis->llen('dbs')); $f = $redis->lrange('dbs',0,-1); //LSET key index value------將列表下標(biāo)為index的元素的值設(shè)置為value $h = $redis->lset('dbs',1,'jiang'); //LTRIM key start stop------列表只保留指定區(qū)間內(nèi)的元素 $i = $redis->ltrim('dbs',3,5); //LINDEX key index------返回列表中下標(biāo)為index的元素 $e = $redis->lindex('dbs',$redis->llen('dbs')-1); //LINSERT key BEFORE|AFTER pivot value------將值value插入到列表當(dāng)中,位于值pivot之前或之后 $g = $redis->linsert('dbs',Redis::BEFORE,'mysql','mysqlmysql'); $g = $redis->linsert('dbs',Redis::AFTER,'redis','redisredis'); //RPOPLPUSH source destination------命令RPOPLPUSH在一個(gè)原子時(shí)間內(nèi)執(zhí)行以下兩個(gè)動(dòng)作:1,將列表source中的最后一個(gè)元素(尾元素)彈出,并返回給客戶端;2,將source彈出的元素插入到列表destination,作為destination列表的的頭元素 $k = $redis->rpoplpush('dbs1','dbs'); /****************Set(集合)相關(guān)操作***************/ //SADD key member [member ...]------將一個(gè)或多個(gè)member元素加入到集合key當(dāng)中,已經(jīng)存在于集合的member元素將被忽略 $a = $redis->sadd('set', 'xingrongjiang'); //SREM key member [member ...]------移除集合key中的一個(gè)或多個(gè)member元素,不存在的member元素會(huì)被忽略 $b = $redis->srem('set','Array'); //SMEMBERS key------返回集合key中的所有成員 $c = $redis->smembers('set'); //SISMEMBER key member------判斷member元素是否集合key的成員 $d = $redis->sismember('set','liyang'); //SCARD key------返回集合key的基數(shù)(集合中元素的數(shù)量) $e = $redis->scard('set'); //SMOVE source destination member------將member元素從source集合移動(dòng)到destination集合 $f = $redis->smove('set','set1','xingrongjiang'); //SPOP key------移除并返回集合中的一個(gè)隨機(jī)元素 $g = $redis->spop('set'); //SRANDMEMBER key [count]------如果只提供了key參數(shù),那么返回集合中的一個(gè)隨機(jī)元素;如果count為正數(shù),且小于集合基數(shù),返回一個(gè)包含count個(gè)元素的數(shù)組,數(shù)組中的元素各不相同;如果count大于等于集合基數(shù),返回整個(gè)集合;如果count為負(fù)數(shù),那么命令返回一個(gè)數(shù)組,數(shù)組中的元素可能會(huì)重復(fù)出現(xiàn)多次,而數(shù)組的長(zhǎng)度為count的絕對(duì)值 $h = $redis->srandmember('set',2); //SINTER key [key ...]------返回一個(gè)集合的全部成員,該集合是所有給定集合的交集 $i = $redis->sinter('set'); //SINTERSTORE destination key [key ...]------類似于SINTER命令,它將結(jié)果保存到destination集合,而不是簡(jiǎn)單地返回結(jié)果集 $j = $redis->sinterstore('haha','set'); //SUNION key [key ...]------返回一個(gè)集合的全部成員,該集合是所有給定集合的并集 $k = $redis->sunion('set','set1'); //SUNIONSTORE destination key [key ...]------類似于SUNION命令,它將結(jié)果保存到destination集合,而不是簡(jiǎn)單地返回結(jié)果集 $l = $redis->sunionstore('haha1','haha','set1'); //SDIFF key [key ...]------返回一個(gè)集合的全部成員,該集合是所有給定集合之間的差集 $m = $redis->sdiff('set','set1'); /****************有序集(Sorted set)相關(guān)操作***************/ //ZADD key score member------向名稱為key的zset中添加元素member,score用于排序,如果該元素已經(jīng)存在,則根據(jù)score更新該元素的順序 $a = $redis->zadd('site', 10, 'google.com'); $a = $redis->zadd('site', 9, 'baidu.com'); $a = $redis->zadd('site', 8, 'sina.com.cn'); //ZREM key member------刪除名稱為key的zset中的元素member // $b = $redis->zrem('site','sina.com.cn'); //ZCARD key------返回名稱為key的zset的所有元素的個(gè)數(shù) $c = $redis->zcard('site'); //ZCOUNT key min max------返回有序集key中,score值在min和max之間的成員的數(shù)量 $d = $redis->zcount('site',6,9); //ZSCORE key member------返回有序集key中,成員member的score值 $e = $redis->zscore('site','baidu.com'); //ZINCRBY key increment member------為有序集key的成員member的score值加上增量increment,返回值就是score加上increment的結(jié)果 $f = $redis->zincrby('site',10,'baidu.com'); //ZRANGE key start stop [WITHSCORES]------返回有序集key中,指定區(qū)間內(nèi)的成員,其中成員的位置按score值遞增(從小到大)來排序 $j = $redis->zrange('site',0,-1); $j = $redis->zrange('site',0,-1,true); //ZREVRANGE key start stop [WITHSCORES]------返回有序集key中,指定區(qū)間內(nèi)的成員,其中成員的位置按score值遞減(從大到小)來排列 $h = $redis->zrevrange('site',0,-1); $h = $redis->zrevrange('site',0,-1,true); /****************Connection(連接)***************/ //AUTH password------密碼認(rèn)證 $a = $redis->auth('123456'); //PING------查看連接狀態(tài) $b = $redis->ping(); //SELECT index------切換到指定的數(shù)據(jù)庫,數(shù)據(jù)庫索引號(hào)index用數(shù)字值指定,以0作為起始索引值,默認(rèn)使用0號(hào)數(shù)據(jù)庫 $c = $redis->select(1); /****************Server(服務(wù)器)***************/ //TIME------返回當(dāng)前服務(wù)器時(shí)間,一個(gè)包含兩個(gè)字符串的列表:第一個(gè)字符串是當(dāng)前時(shí)間(以UNIX時(shí)間戳格式表示),而第二個(gè)字符串是當(dāng)前這一秒鐘已經(jīng)逝去的微秒數(shù) $a = $redis->time(); //DBSIZE-----返回當(dāng)前數(shù)據(jù)庫的key的數(shù)量 $b = $redis->dbsize(); //BGREWRITEAOF------使用aof來進(jìn)行數(shù)據(jù)庫持久化 $c = $redis->bgrewriteaof(); //SAVE------將數(shù)據(jù)同步保存到磁盤 $d = $redis->save(); //BGSAVE------將數(shù)據(jù)異步保存到磁盤 $e = $redis->bgsave(); //LASTSAVE------返回上次成功將數(shù)據(jù)保存到磁盤的Unix時(shí)戳 $f = $redis->lastsave(); //SLAVEOF host port------選擇從服務(wù)器 $redis->slaveof('10.0.1.7', 6379); //FLUSHALL------清空整個(gè)Redis服務(wù)器的數(shù)據(jù)(刪除所有數(shù)據(jù)庫的所有key) $redis->flushall(); //FLUSHDB------清空當(dāng)前數(shù)據(jù)庫中的所有key $redis->flushdb(); //INFO [section]------返回關(guān)于 Redis 服務(wù)器的各種信息和統(tǒng)計(jì)數(shù)值 $g = $redis->info();
到此這篇關(guān)于PHP操作Redis常用命令的實(shí)例詳解的文章就介紹到這了,更多相關(guān)PHP操作Redis命令內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
實(shí)例介紹PHP刪除數(shù)組中的重復(fù)元素
在本文里小編給大家分享了關(guān)于PHP如何刪除數(shù)組中的重復(fù)元素的相關(guān)知識(shí)點(diǎn)和步驟,需要的朋友們學(xué)習(xí)下。2019-03-03PHP代碼判斷設(shè)備是手機(jī)還是平板電腦(兩種方法)
隨著互聯(lián)網(wǎng)移動(dòng)設(shè)備的普及,很多網(wǎng)站都兼容手機(jī)端瀏覽,為了更好的讓網(wǎng)頁在手機(jī)端顯示,我們都選擇了使用CSS媒體查詢制作響應(yīng)式模版。本文給大家介紹PHP代碼判斷設(shè)備是手機(jī)還是平板電腦(兩種方法),感興趣的朋友一起學(xué)習(xí)吧2015-10-10thinkPHP3.0框架實(shí)現(xiàn)模板保存到數(shù)據(jù)庫的方法
這篇文章主要介紹了thinkPHP3.0框架實(shí)現(xiàn)模板保存到數(shù)據(jù)庫的方法,結(jié)合實(shí)例形式分析了使用thinkPHP3.0框架開發(fā)CMS系統(tǒng)過程中將模板保存到數(shù)據(jù)庫的具體實(shí)現(xiàn)步驟與相關(guān)操作技巧,需要的朋友可以參考下2017-08-08PHP啟動(dòng)windows應(yīng)用程序、執(zhí)行bat批處理、執(zhí)行cmd命令的方法(exec、system函數(shù)詳解)
這篇文章主要介紹了PHP啟動(dòng)windows應(yīng)用程序、執(zhí)行bat批處理、執(zhí)行cmd命令的方法(exec、system函數(shù)詳解),需要的朋友可以參考下2014-10-10在Laravel的Model層做數(shù)據(jù)緩存的實(shí)現(xiàn)
這篇文章主要介紹了在Laravel的Model層做數(shù)據(jù)緩存的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-09-09