主頁 > 資料庫 > PHP操作Redis常用命令

PHP操作Redis常用命令

2020-12-23 08:08:36 資料庫

//連接本地的 Redis 服務 
$redis = new Redis();
$redis->connect('127.0.0.1', 6379);
$redis->auth('123456');

/*********************Key(鍵)*********************/
//DEL key [key ...]------洗掉給定的一個或多個key 
$a = $redis->del(array('xrj','ly','fjf'));
//KEYS pattern------查找所有符合給定模式pattern的key
$b = $redis->keys('*');
//RANDOMKEY------從當前資料庫中隨機回傳(不洗掉)一個key
$c = $redis->randomkey();
//TTL key------以秒為單位,回傳給定key的剩余生存時間(TTL, time to live)
//PTTL key------以毫秒為單位,回傳給定key的剩余生存時間
$d = $redis->ttl('bbs');
//EXISTS key------檢查給定key是否存在,存在,回傳1,否則回傳0
$e = $redis->exists('email');
//MOVE key db------將當前資料庫的key移動到給定的資料庫db當中
$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------當且僅當newkey不存在時,將key改名為newkey
$h = $redis->renamenx('bbs','bbs1');
//TYPE key------回傳key所儲存的值的型別
$i = $redis->type('pageview');
//EXPIRE key seconds------給key設定生存時間,當key過期時,它會被自動洗掉
//PEXPIRE key milliseconds------以毫秒為單位設定key的生存時間
//EXPIREAT key timestamp------命令接受的時間引數是UNIX時間戳,key存活到一個unix時間戳時間
//PERSIST key------移除給定key的生存時間,轉換成一個不帶生存時間,永不過期的key
//SORT key [BY pattern] [LIMIT offset count] [GET pattern [GET pattern ...]] [ASC | DESC] [ALPHA] [STORE destination]------回傳或保存給定串列、集合、有序集合key中經過排序的元素     

/****************String(字串)相關操作***************/
//SET key value------將字串值value關聯到key,會覆寫
$a = $redis->set('email','[email protected]');
//SETNX key value------將key的值設為value,當且僅當key不存在的時候,成功回傳1,不成功回傳0 
$b = $redis->setnx('email','[email protected]');
//SETEX key seconds value------將值value關聯到key,并將key的生存時間設為seconds(以秒為單位)
$c = $redis->setex('name',10086,'江');
//PSETEX key milliseconds value------命令和SETEX命令相似,它以毫秒為單位設定key的生存時間 
$d = $redis->psetex('jiang',90000,'哈哈哈');
//MSET key value [key value ...]------同時設定一個或多個key-value對
$e = $redis->mset(array('ly' => 'liyang', 'fjf' => 'fengjingfeng'));
//MSETNX key value [key value ...]------同時設定一個或多個key-value對,當且僅當所給定key都不存在 
$f = $redis->msetnx(array('ly' => 'liyang', 'xrj'=>'xingrongjiang', 'fjf' => 'fengjingfeng'));
//APPEND key value------如果key已經存在并且是一個字串,APPEND命令將value追加到key原來的值的末尾,如果key不存在,APPEND就像執行SET key value一樣    
$g = $redis->append('ly','love');
//GET key------回傳key所關聯的字串值,如果key不存在那么回傳特殊值nil,GET只能用于處理字串值   
$h = $redis->get('ly');
//MGET key [key ...]------回傳所有(一個或多個)給定key的值,如果給定的key里面有某個key不存在,那么這個key回傳特殊值nil,命令永不失敗    
$i = $redis->mget(array('email','ly','fjf'));
//GETRANGE key start end------回傳key中字串值的子字串,字串的截取范圍由start和end兩個偏移量決定(包括start和end在內),負數偏移量表示從字串最后開始計數,-1表示最后一個字符,-2表示倒數第二個    
$j = $redis->getrange('email',0,-1); //從第一個到最后一個,相當于直接get
//GETSET key value------將給定key的值設為value,并回傳key的舊值(old value)
$k = $redis->getset('email','[email protected]');
//STRLEN key------回傳key所儲存的字串值的長度
$l = $redis->strlen('email');
//DECR key------將key中儲存的數字值減一,如果key不存在,那么key的值會先被初始化為0,然后再執行DECR操作    
$m = $redis->decr('pageview');
//INCR key------將key中儲存的數字值增一,如果key不存在,那么key的值會先被初始化為0,然后再執行INCR操作    
$n = $redis->incr('pageview1');
//DECRBY key decrement------將key所儲存的值減去減量decrement(可以為負值)    
$o = $redis->decrby('pageview',3);
//INCRBY key increment------將key所儲存的值加上增量increment(可以為負值)    
$p = $redis->incrby('pageview',6);

/****************Hash(哈希表)相關操作***************/
//HSET key field value------將哈希表key中的域field的值設為value,新建回傳1,覆寫回傳0
$a = $redis->hset("user","[email protected]","{'name':'jiangzunshao','age':25,'work':'php','city':'BeiJing'}");    
//HSETNX key field value------將哈希表key中的域field的值設定為value,當且僅當域field不存在的時候. 設定成功,回傳1,如果已經存在且沒有操作被執行,回傳0    
$b = $redis->hsetnx("user","[email protected]","{'name':'jiangzunshao','age':25,'work':'php','city':'BeiJing'}");    
//HGET key field------回傳哈希表key中給定域field的值
$c = $redis->hget("user","[email protected]");
//HMSET key field value [field value ...]------同時將多個field-value(域-值)對設定到哈希表 key中 
$d = $redis->hmset('user',array('name'=>'jiangzunshao', 'age' => 20));
//HMGET key field [field ...]------回傳哈希表 key中,一個或多個給定域的值
$f = $redis->hmGet('user', array('name', 'age'));
//HGETALL key------回傳哈希表key中,所有的域和值
$g = $redis->hgetall('user');
//HDEL key field [field ...]------洗掉哈希表key中的一個或多個指定域,不存在的域將被忽略
$h = $redis->hdel('user','age');
//HLEN key------回傳哈希表key中域的數量
$i = $redis->hlen('user');
//HEXISTS key field------查看哈希表key中,給定域field是否存在,存在回傳1,不存在回傳0
$g = $redis->hexists('user','[email protected]');
//HINCRBY key field increment------為哈希表key中的域field的值加上增量increment,可以為負
$k = $redis->hincrby('user','pv',5);
//HKEYS key------回傳哈希表key中的所有域
$l = $redis->hkeys('user');
//HVALS key------回傳哈希表key中所有域的值
$m = $redis->hvals('user');

/****************List(串列)相關操作***************/
//LPUSH key value [value ...]------將資料插入串列的頭部
$redis->lpush('dbs','mongodb-3.2');
//RPUSH key value [value ...]------將資料插入串列的尾部
$redis->rpush('dbs','redis');
//LLEN key------獲取串列的長度
$c = $redis->llen('dbs');
//LPOP key------移除并回傳串列的頭元素
$d = $redis->lpop('dbs');
//RPOP key------移除并回傳串列的尾元素
$e = $redis->rpop('dbs');
//LRANGE key start stop------回傳串列中指定區間內元素
$f = $redis->lrange('dbs',0,$redis->llen('dbs'));
$f = $redis->lrange('dbs',0,-1);
//LSET key index value------將串列下標為index的元素的值設定為value
$h = $redis->lset('dbs',1,'jiang');
//LTRIM key start stop------串列只保留指定區間內的元素
$i = $redis->ltrim('dbs',3,5);
//LINDEX key index------回傳串列中下標為index的元素
$e = $redis->lindex('dbs',$redis->llen('dbs')-1); 
//LINSERT key BEFORE|AFTER pivot value------將值value插入到串列當中,位于值pivot之前或之后
$g = $redis->linsert('dbs',Redis::BEFORE,'mysql','mysqlmysql');
$g = $redis->linsert('dbs',Redis::AFTER,'redis','redisredis');  
//RPOPLPUSH source destination------命令RPOPLPUSH在一個原子時間內執行以下兩個動作:1,將串列source中的最后一個元素(尾元素)彈出,并回傳給客戶端;2,將source彈出的元素插入到串列destination,作為destination串列的的頭元素    
$k = $redis->rpoplpush('dbs1','dbs');
    
/****************Set(集合)相關操作***************/
//SADD key member [member ...]------將一個或多個member元素加入到集合key當中,已經存在于集合的member元素將被忽略    
$a = $redis->sadd('set', 'xingrongjiang');
//SREM key member [member ...]------移除集合key中的一個或多個member元素,不存在的member元素會被忽略    
$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的基數(集合中元素的數量) 
$e = $redis->scard('set');
//SMOVE source destination member------將member元素從source集合移動到destination集合
$f = $redis->smove('set','set1','xingrongjiang');
//SPOP key------移除并回傳集合中的一個隨機元素
$g = $redis->spop('set');
//SRANDMEMBER key [count]------如果只提供了key引數,那么回傳集合中的一個隨機元素;如果count為正數,且小于集合基數,回傳一個包含count個元素的陣列,陣列中的元素各不相同;如果count大于等于集合基數,回傳整個集合;如果count為負數,那么命令回傳一個陣列,陣列中的元素可能會重復出現多次,而陣列的長度為count的絕對值    
$h = $redis->srandmember('set',2);
//SINTER key [key ...]------回傳一個集合的全部成員,該集合是所有給定集合的交集
$i = $redis->sinter('set'); 
//SINTERSTORE destination key [key ...]------類似于SINTER命令,它將結果保存到destination集合,而不是簡單地回傳結果集    
$j = $redis->sinterstore('haha','set');
//SUNION key [key ...]------回傳一個集合的全部成員,該集合是所有給定集合的并集
$k = $redis->sunion('set','set1');
//SUNIONSTORE destination key [key ...]------類似于SUNION命令,它將結果保存到destination集合,而不是簡單地回傳結果集    
$l = $redis->sunionstore('haha1','haha','set1');
//SDIFF key [key ...]------回傳一個集合的全部成員,該集合是所有給定集合之間的差集
$m = $redis->sdiff('set','set1');
  
/****************有序集(Sorted set)相關操作***************/
//ZADD key score member------向名稱為key的zset中添加元素member,score用于排序,如果該元素已經存在,則根據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的所有元素的個數
$c = $redis->zcard('site');
//ZCOUNT key min max------回傳有序集key中,score值在min和max之間的成員的數量
$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的結果  
$f = $redis->zincrby('site',10,'baidu.com');
//ZRANGE key start stop [WITHSCORES]------回傳有序集key中,指定區間內的成員,其中成員的位置按score值遞增(從小到大)來排序  
$j = $redis->zrange('site',0,-1);
$j = $redis->zrange('site',0,-1,true);
//ZREVRANGE key start stop [WITHSCORES]------回傳有序集key中,指定區間內的成員,其中成員的位置按score值遞減(從大到小)來排列  
$h = $redis->zrevrange('site',0,-1);
$h = $redis->zrevrange('site',0,-1,true);

/****************Connection(連接)***************/
//AUTH password------密碼認證
$a = $redis->auth('123456');
//PING------查看連接狀態
$b = $redis->ping();
//SELECT index------切換到指定的資料庫,資料庫索引號index用數字值指定,以0作為起始索引值,默認使用0號資料庫    
$c = $redis->select(1);
    
/****************Server(服務器)***************/
//TIME------回傳當前服務器時間,一個包含兩個字串的串列:第一個字串是當前時間(以UNIX時間戳格式表示),而第二個字串是當前這一秒鐘已經逝去的微秒數    
$a = $redis->time();
//DBSIZE-----回傳當前資料庫的key的數量
$b = $redis->dbsize();
//BGREWRITEAOF------使用aof來進行資料庫持久化
$c = $redis->bgrewriteaof();
//SAVE------將資料同步保存到磁盤
$d = $redis->save();
//BGSAVE------將資料異步保存到磁盤  
$e = $redis->bgsave();
//LASTSAVE------回傳上次成功將資料保存到磁盤的Unix時戳
$f = $redis->lastsave();
//SLAVEOF host port------選擇從服務器
$redis->slaveof('10.0.1.7', 6379);
//FLUSHALL------清空整個Redis服務器的資料(洗掉所有資料庫的所有key)
$redis->flushall();
//FLUSHDB------清空當前資料庫中的所有key
$redis->flushdb();
//INFO [section]------回傳關于 Redis 服務器的各種資訊和統計數值
$g = $redis->info();

轉自 PHP操作redis部分命令

轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/239016.html

標籤:其他

上一篇:忘記 root 密碼怎么辦?教你4種使用MySQL方式修改密碼!(超實用)

下一篇:Postgresql-13 安裝及資料目錄設定-收藏版

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • GPU虛擬機創建時間深度優化

    **?桔妹導讀:**GPU虛擬機實體創建速度慢是公有云面臨的普遍問題,由于通常情況下創建虛擬機屬于低頻操作而未引起業界的重視,實際生產中還是存在對GPU實體創建時間有苛刻要求的業務場景。本文將介紹滴滴云在解決該問題時的思路、方法、并展示最終的優化成果。 從公有云服務商那里購買過虛擬主機的資深用戶,一 ......

    uj5u.com 2020-09-10 06:09:13 more
  • 可編程網卡芯片在滴滴云網路的應用實踐

    **?桔妹導讀:**隨著云規模不斷擴大以及業務層面對延遲、帶寬的要求越來越高,采用DPDK 加速網路報文處理的方式在橫向縱向擴展都出現了局限性。可編程芯片成為業界熱點。本文主要講述了可編程網卡芯片在滴滴云網路中的應用實踐,遇到的問題、帶來的收益以及開源社區貢獻。 #1. 資料中心面臨的問題 隨著滴滴 ......

    uj5u.com 2020-09-10 06:10:21 more
  • 滴滴資料通道服務演進之路

    **?桔妹導讀:**滴滴資料通道引擎承載著全公司的資料同步,為下游實時和離線場景提供了必不可少的源資料。隨著任務量的不斷增加,資料通道的整體架構也隨之發生改變。本文介紹了滴滴資料通道的發展歷程,遇到的問題以及今后的規劃。 #1. 背景 資料,對于任何一家互聯網公司來說都是非常重要的資產,公司的大資料 ......

    uj5u.com 2020-09-10 06:11:05 more
  • 滴滴AI Labs斬獲國際機器翻譯大賽中譯英方向世界第三

    **桔妹導讀:**深耕人工智能領域,致力于探索AI讓出行更美好的滴滴AI Labs再次斬獲國際大獎,這次獲獎的專案是什么呢?一起來看看詳細報道吧! 近日,由國際計算語言學協會ACL(The Association for Computational Linguistics)舉辦的世界最具影響力的機器 ......

    uj5u.com 2020-09-10 06:11:29 more
  • MPP (Massively Parallel Processing)大規模并行處理

    1、什么是mpp? MPP (Massively Parallel Processing),即大規模并行處理,在資料庫非共享集群中,每個節點都有獨立的磁盤存盤系統和記憶體系統,業務資料根據資料庫模型和應用特點劃分到各個節點上,每臺資料節點通過專用網路或者商業通用網路互相連接,彼此協同計算,作為整體提供 ......

    uj5u.com 2020-09-10 06:11:41 more
  • 滴滴資料倉庫指標體系建設實踐

    **桔妹導讀:**指標體系是什么?如何使用OSM模型和AARRR模型搭建指標體系?如何統一流程、規范化、工具化管理指標體系?本文會對建設的方法論結合滴滴資料指標體系建設實踐進行解答分析。 #1. 什么是指標體系 ##1.1 指標體系定義 指標體系是將零散單點的具有相互聯系的指標,系統化的組織起來,通 ......

    uj5u.com 2020-09-10 06:12:52 more
  • 單表千萬行資料庫 LIKE 搜索優化手記

    我們經常在資料庫中使用 LIKE 運算子來完成對資料的模糊搜索,LIKE 運算子用于在 WHERE 子句中搜索列中的指定模式。 如果需要查找客戶表中所有姓氏是“張”的資料,可以使用下面的 SQL 陳述句: SELECT * FROM Customer WHERE Name LIKE '張%' 如果需要 ......

    uj5u.com 2020-09-10 06:13:25 more
  • 滴滴Ceph分布式存盤系統優化之鎖優化

    **桔妹導讀:**Ceph是國際知名的開源分布式存盤系統,在工業界和學術界都有著重要的影響。Ceph的架構和演算法設計發表在國際系統領域頂級會議OSDI、SOSP、SC等上。Ceph社區得到Red Hat、SUSE、Intel等大公司的大力支持。Ceph是國際云計算領域應用最廣泛的開源分布式存盤系統, ......

    uj5u.com 2020-09-10 06:14:51 more
  • es~通過ElasticsearchTemplate進行聚合~嵌套聚合

    之前寫過《es~通過ElasticsearchTemplate進行聚合操作》的文章,這一次主要寫一個嵌套的聚合,例如先對sex集合,再對desc聚合,最后再對age求和,共三層嵌套。 Aggregations的部分特性類似于SQL語言中的group by,avg,sum等函式,Aggregation ......

    uj5u.com 2020-09-10 06:14:59 more
  • 爬蟲日志監控 -- Elastc Stack(ELK)部署

    傻瓜式部署,只需替換IP與用戶 導讀: 現ELK四大組件分別為:Elasticsearch(核心)、logstash(處理)、filebeat(采集)、kibana(可視化) 下載均在https://www.elastic.co/cn/downloads/下tar包,各組件版本最好一致,配合fdm會 ......

    uj5u.com 2020-09-10 06:15:05 more
最新发布
  • day02-2-商鋪查詢快取

    功能02-商鋪查詢快取 3.商鋪詳情快取查詢 3.1什么是快取? 快取就是資料交換的緩沖區(稱作Cache),是存盤資料的臨時地方,一般讀寫性能較高。 快取的作用: 降低后端負載 提高讀寫效率,降低回應時間 快取的成本: 資料一致性成本 代碼維護成本 運維成本 3.2需求說明 如下,當我們點擊商店詳 ......

    uj5u.com 2023-04-20 08:33:24 more
  • MySQL中binlog備份腳本分享

    關于MySQL的二進制日志(binlog),我們都知道二進制日志(binlog)非常重要,尤其當你需要point to point災難恢復的時侯,所以我們要對其進行備份。關于二進制日志(binlog)的備份,可以基于flush logs方式先切換binlog,然后拷貝&壓縮到到遠程服務器或本地服務器 ......

    uj5u.com 2023-04-20 08:28:06 more
  • day02-短信登錄

    功能實作02 2.功能01-短信登錄 2.1基于Session實作登錄 2.1.1思路分析 2.1.2代碼實作 2.1.2.1發送短信驗證碼 發送短信驗證碼: 發送驗證碼的介面為:http://127.0.0.1:8080/api/user/code?phone=xxxxx<手機號> 請求方式:PO ......

    uj5u.com 2023-04-20 08:27:27 more
  • 快取與資料庫雙寫一致性幾種策略分析

    本文將對幾種快取與資料庫保證資料一致性的使用方式進行分析。為保證高并發性能,以下分析場景不考慮執行的原子性及加鎖等強一致性要求的場景,僅追求最終一致性。 ......

    uj5u.com 2023-04-20 08:26:48 more
  • sql陳述句優化

    問題查找及措施 問題查找 需要找到具體的代碼,對其進行一對一優化,而非一直把關注點放在服務器和sql平臺 降低簡化每個事務中處理的問題,盡量不要讓一個事務拖太長的時間 例如檔案上傳時,應將檔案上傳這一步放在事務外面 微軟建議 4.啟動sql定時執行計劃 怎么啟動sqlserver代理服務-百度經驗 ......

    uj5u.com 2023-04-20 08:26:35 more
  • 云時代,MySQL到ClickHouse資料同步產品對比推薦

    ClickHouse 在執行分析查詢時的速度優勢很好的彌補了MySQL的不足,但是對于很多開發者和DBA來說,如何將MySQL穩定、高效、簡單的同步到 ClickHouse 卻很困難。本文對比了 NineData、MaterializeMySQL(ClickHouse自帶)、Bifrost 三款產品... ......

    uj5u.com 2023-04-20 08:26:29 more
  • sql陳述句優化

    問題查找及措施 問題查找 需要找到具體的代碼,對其進行一對一優化,而非一直把關注點放在服務器和sql平臺 降低簡化每個事務中處理的問題,盡量不要讓一個事務拖太長的時間 例如檔案上傳時,應將檔案上傳這一步放在事務外面 微軟建議 4.啟動sql定時執行計劃 怎么啟動sqlserver代理服務-百度經驗 ......

    uj5u.com 2023-04-20 08:25:13 more
  • Redis 報”OutOfDirectMemoryError“(堆外記憶體溢位)

    Redis 報錯“OutOfDirectMemoryError(堆外記憶體溢位) ”問題如下: 一、報錯資訊: 使用 Redis 的業務介面 ,產生 OutOfDirectMemoryError(堆外記憶體溢位),如圖: 格式化后的報錯資訊: { "timestamp": "2023-04-17 22: ......

    uj5u.com 2023-04-20 08:24:54 more
  • day02-2-商鋪查詢快取

    功能02-商鋪查詢快取 3.商鋪詳情快取查詢 3.1什么是快取? 快取就是資料交換的緩沖區(稱作Cache),是存盤資料的臨時地方,一般讀寫性能較高。 快取的作用: 降低后端負載 提高讀寫效率,降低回應時間 快取的成本: 資料一致性成本 代碼維護成本 運維成本 3.2需求說明 如下,當我們點擊商店詳 ......

    uj5u.com 2023-04-20 08:24:03 more
  • day02-短信登錄

    功能實作02 2.功能01-短信登錄 2.1基于Session實作登錄 2.1.1思路分析 2.1.2代碼實作 2.1.2.1發送短信驗證碼 發送短信驗證碼: 發送驗證碼的介面為:http://127.0.0.1:8080/api/user/code?phone=xxxxx<手機號> 請求方式:PO ......

    uj5u.com 2023-04-20 08:23:11 more