主頁 > 資料庫 > Redis常用命令

Redis常用命令

2021-04-16 11:06:58 資料庫

Redis基礎命令

  1. 查看服務器運行狀態:ping
  2. 查看服務器他的統計資訊:info [section],section的值:server , clients ,memory等等
  3. 切換庫命令:select index(默認16個庫,從0開始)

Redis中key的操作命令

  1. 查看當前資料庫中key的數目:dbsize
  2. 查看當前資料庫中有哪些key:keys *
  3. 清空當前/所有庫:flushdb/flushall
  4. 獲取redis的所有配置項:config get *
  5. 查找符合條件的key:key */wo?d/wo[or]d
  6. 判斷key是否存在:exists key1 key2,存在回傳1,不存在回傳0,多個key回傳存在的數量
  7. 移動key到指定的資料庫,移動的key在原庫中洗掉,移動成功回傳1,失敗為0:move key dbIndex
  8. 查看key的剩余生存時間,以秒為單位,回傳-1為永不過期,-2為不存在:ttl key
  9. 設定key的生存時間,超過時間key自動洗掉,單位是秒,成功回傳1,失敗為0:expire key seconds
  10. 查看key所存盤值的資料型別:type key
  11. 給key改名字,當key和newkey相同,或者newkey不存在時回傳一個錯誤:rename key newkey
  12. 洗掉存在的key,不存在的將被忽略,回傳洗掉key的數量:del key1 key2

Redis中五種資料型別結構

字串型別:String

簡介
1.redis中最基本的資料結構,能存盤任何型別的資料,甚至是圖片,最大512M
2.字串型別的資料操作總的思想是通過key操作value,key是資料標識,value是我們感興趣的業務資料

常用操作命令

  1. 將字串值 value 設定到 key 中,如果key已存在,后放的值會把前放的值覆寫掉:set key value
  2. 獲取 key 中設定的字串值,key存在,回傳key對應的value;key不存在,回傳nil:get key
  3. 如果 key 存在,則將 value 追加到 key 原來舊值的末尾, 如果 key 不存在,則將key 設定值為 value,回傳值:追加字串之后的總長度(字符個數):append key value
  4. 回傳 key 所儲存的字串值的長度:strlen key
  5. 將 key 中儲存的數字值加1,如果 key 不存在,則 key 的值先被初始化為 0 再執行incr操作:incr key
  6. 將 key 中儲存的數字值減1,如果 key 不存在,則么 key 的值先被初始化為 0 再執行 decr 操作:decr key
  7. 將 key 所儲存的值加上增量值,如果 key 不存在,則 key 的值先被初始化為 0 再執行 INCRBY 命令:incrby key offset
  8. 將 key 所儲存的值減去減量值,如果 key 不存在,則 key 的值先被初始化為 0 再執行 DECRBY 命令:decrby key offset
  9. 獲取 key 中字串值從 startIndex 開始到 endIndex 結束的子字串,包括startIndex和endIndex, 負數表示從字串的末尾開始,-1 表示最后一個字符:getrange key startindex endindex
  10. 用value覆寫key的存盤的值從offset開始,回傳值為修改后的字串的長度:setrange key offsetIndex value
  11. 設定key的值,并將 key 的生存時間設為 seconds (以秒為單位) ,如果key已經存在,將覆寫舊值,回傳值:設定成功,回傳OK:setex key seconds value
  12. setnx 是 set if not exists 的簡寫,如果key不存在,則 set 值,存在則不設定值,成功回傳1:setnx key value
  13. 同時設定一個或多個 key-value 對:mset key1 value1 key2 value2
  14. 獲取所有(一個或多個)給定 key 的值回傳值:包含所有key的串列,如果key不存在,則回傳nil:mget key1 key2
  15. 同時設定一個或多個 key-value 對,如果有一個key是存在的,則設定不成功:msetex key1 value1 key2 value2

串列:List

簡介

  1. Redis串列是簡單的字串串列,按照插入順序排序,左邊(頭部)、右邊(尾部)或者中間都可以添加元素,底層是個鏈表結構,鏈表的操作無論是頭或者尾效率都極高,但是如果對中間元素進行操作,那效率會大大降低了,
  2. 串列型別的資料操作總的思想是通過key和下標操作value,key是資料標識,下標是資料在串列中的位置,value是我們感興趣的業務資料

常用操作命令

  1. 將一個或多個值 value 插入到串列 key 的最左邊(表頭),各個value值依次插入到表頭位置,回傳值:插入之后的串列的長度:lpush key value1 value2[value…]
  2. 將一個或多個值 value 插入到串列 key 的最右邊(表尾),各個 value 值按依次插入到表尾,回傳值:插入之后的串列的長度:rpush key value[value…]
  3. 獲取串列 key 中指定下標區間內的元素,下標從0開始,到串列長度-1;下標也可以是負數,表示串列從后往前取,-1表示倒數第一個元素,-2表示倒數第二個元素,以此類推;startIndex和endIndex超出范圍不會報錯,
    回傳值:獲取到的元素串列:lrange key startIndex endIndex
  4. 移除并回傳串列key頭部第一個元素,即串列左側的第一個元素,
    回傳值:串列左側第一個元素的值;串列key不存在,回傳nil:lpop key
  5. 移除并回傳串列key尾部第一個元素,即串列右側的第一個元素,
    回傳值:串列右側第一個元素的值;串列key不存在,回傳nil:rpop key
  6. 獲取串列 key 中下標為指定 index 的元素,串列元素不洗掉,只是查詢,0 表示串列的第一個元素,1 表示串列的第二個元素;index也可以負數的下標, -1 表示串列的最后一個元素, -2 表示串列的倒數第二個元素,以此類推:lindex key index
  7. 獲取串列 key 的長度,回傳值:數值,串列的長度;key不存在回傳0:llen key
  8. 根據引數 count 的值,移除串列中與引數 value 相等的元素,count >0 ,從串列的左側向右開始移除;count < 0 從串列的尾部開始移除;count = 0移除表中所有與 value 相等的值,回傳值為移除元素的個數:lrem key count value
  9. 截取key的指定下標區間的元素,并且賦值給key,下標從0開始,一直到串列長度-1;下標也可以是負數,表示串列從后往前取,-1表示倒數第一個元素,-2表示倒數第二個元素,以此類推;startIndex和endIndex超出范圍不會報錯
  10. 將串列 key 下標為 index 的元素的值設定為 value,功能:設定成功回傳ok ; key不存在或者index超出范圍回傳錯誤資訊:lset key index value
  11. 將值 value 插入到串列 key 當中位于值 pivot 之前或之后的位置,key不存在或者pivot不在串列中,不執行任何操作,回傳值:命令執行成功,回傳新串列的長度,沒有找到pivot回傳 -1, key不存在回傳0:linsert key before/after pivot value

集合型別:Set

簡介

  1. Redis的Set是string型別的無序不重復集合
  2. 集合型別的資料操作總的思想是通過key確定集合,key是集合標識,元素沒有下標,只有直接操作業務資料和資料的個數

常用操作命令

  1. 將一個或多個 member 元素加入到集合 key 當中,已經存在于集合的 member 元素將被忽略,不會再加入,回傳值:加入到集合的新元素的個數(不包括被忽略的元素):sadd key member[member…]
  2. 獲取集合 key 中的所有成員元素,不存在的key視為空集合,回傳值:回傳指定集合的所有元素集合,不存在的key,回傳空集合:smembers key
  3. 判斷 member 元素是否是集合 key 的元素:sismember key member
  4. 獲取集合里面的元素個數回傳值:數字,key的元素個數,其他情況回傳 0:scard key
  5. 移除集合中一個或多個元素,不存在的元素被忽略:srem key member [member…]
  6. 只提供key,隨機回傳集合中一個元素,元素不洗掉,依然在集合中;提供了count時,count 正數, 回傳包含count個數元素的集合,集合元素各不重復,count是負數,回傳一個count絕對值的長度的集合,集合中元素可能會重復多次:srandmember key[count]
  7. 隨機從集合中洗掉一個或count個元素,回傳值:被洗掉的元素,key不存在或空集合回傳nil:spop key[count]
  8. 將 member 元素從src集合移動到dest集合,member不存在,smove不執行操作,回傳0,如果dest存在member,則僅從src中洗掉member:smove src dest member
  9. 回傳指定集合的差集,以第一個集合為準進行比較,即第一個集合中有但在其它任何集合中都沒有的元素組成的集合,回傳值:回傳第一個集合中有而后邊集合中都沒有的元素組成的集合,如果第一個集合中的元素在后邊集合中都有則回傳空集合:sdiff key key [key…]
  10. 回傳指定集合的交集,即指定的所有集合中都有的元素組成的集合,
    回傳值:交集元素組成的集合,如果沒有則回傳空集合:sinter key key [key…]
  11. 回傳指定集合的并集,即指定的所有集合元素組成的大集合,如果元素有重復,則保留一個,回傳值:回傳所有集合元素組成的大集合,如果所有key都不存在,回傳空集合:sunion key key [key…]

哈希型別:Hash

簡介

  1. Redis的hash 是一個string型別的key和value的映射表,這里的value是一系列的鍵值對,hash特別適合用于存盤物件
  2. 哈希型別的資料操作總的思想是通過key和field操作value,key是資料標識,field是域,value是我們感
    興趣的業務資料

常用命令

  1. 將鍵值對field-value設定到哈希串列key中,如果key不存在,則新建哈希串列,然后執行賦值,如果key下的field已經存在,則value值覆寫:hset key field value [field value …]
  2. 獲取哈希表 key 中給定域 field 的值:hget key field
  3. 同時將多個 field-value (域-值)設定到哈希表 key 中,此命令會覆寫已經存在的field,hash表key不存在,創建空的hash表,再執行hmset:hmset key field value [field value…]
  4. 獲取哈希表 key 中一個或多個給定域的值,回傳值:回傳和field順序對應的值,如果field不存在,回傳nil:hmget key field [field…]
  5. 獲取哈希表 key 中所有的域和值,回傳值:以串列形式回傳hash中域和域的值,key不存在,回傳空hash:hgetall key
  6. 洗掉哈希表 key 中的一個或多個指定域field,不存在field直接忽略:hdel key field [field…]
  7. 獲取哈希表 key 中域field的個數:hlen key
  8. 查看哈希表 key 中,給定域 field 是否存在:hexists key field
  9. 查看哈希表 key 中的所有field域串列:hkeys key
  10. 回傳哈希表 中所有域的值串列:hvals key
  11. 給哈希表key中的field域增加int,回傳值:回傳增加之后的field域的值:hincrby key field int
  12. 給哈希表key中的field域增加float:hincrbyfloat key field float
  13. 將哈希表 key 中的域 field 的值設定為 value ,當且僅當域 field 不存在的時候才設定,否則不設定:hsetnx key field value

有序集合:Zset

簡介

  1. Redis 有序集合zset和集合set一樣也是string型別元素的集合,且不允許重復的成員
  2. 不同的是zset的每個元素都會關聯一個分數(分數可以重復),redis通過分數來為集合中的成員進行從小到大的排序,

常用命令

  1. 將一個或多個 member 元素及其 score 值加入到有序集合 key 中,如果member存在集合中,則覆寫原來的值;score可以是整數或浮點數:zadd key score member [score member…]

  2. 查詢有序集合,指定區間的內的元素,集合成員按score值從小到大來排序;startIndex和endIndex都是從0開始表示第一個元素,1表示第二個元素,以此類推; startIndex和endIndex都可以取負數,表示從后往前取,-1表示倒數第一個元素;WITHSCORES選項讓score和value一同回傳:zrange key startIndex endIndex [WITHSCORES]

  3. 獲取有序集 key 中,所有 score 值介于 min 和 max 之間(包括min和max)的成員,有序成員是按遞增(從小到大)排序;
    使用符號”(“ 表示包括min但不包括max;
    withscores 顯示score和 value;
    limit用來限制回傳結果的數量和區間,在結果集中從第offset個開始,取count個
    語法:zrangebyscore key min max [WITHSCORES ] [LIMIT offset count]

  4. 洗掉有序集合 key 中的一個或多個成員,不存在的成員被忽略:zrem key member [member…]

  5. 獲取有序集 key 的元素成員的個數:zcard key

  6. 回傳有序集 key 中, score 值在 min 和 max 之間(包括 score 值等于 min 或 max )的成員的數量:zcount key min max

  7. 獲取有序集 key 中成員 member 的排名,有序集成員按 score 值從小到大順序排列,從0開始排名,score最小的是0 :zrank key member

  8. 獲取有序集合key中元素member的分數:zscore key member

  9. 獲取有序集 key 中成員 member 的排名,有序集成員按 score 值從大到小順序排列,從0開始排名,score最大的是0 :zrevrank key member

  10. 查詢有序集合,指定區間的內的元素,集合成員按score值從大到小來排序;startIndex和endIndex都是從0開始表示第一個元素,1表示第二個元素,以此類推;startIndex和endIndex都可以取負數,表示從后往前取,-1表示倒數第一個元素;WITHSCORES選項讓score和value一同回傳:zrevrange
    key startIndex endIndex [WITHSCORES]

  11. 獲取有序集 key 中,所有 score 值介于 max 和 min 之間(包括max和min)的成員,有序成員是按遞減(從大到小)排序;
    使用符號”(“ 表示不包括min和max;
    withscores 顯示score和 value;
    limit用來限制回傳結果的數量和區間,在結果集中從第offset個開始,取count個
    語法:zrevrangebyscore key max min [WITHSCORES ] [LIMIT offset count]

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

標籤:其他

上一篇:Lua開發--lua變數

下一篇:誰有 kodigo4.5 來一份研究下!

標籤雲
其他(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