二、redis命令簡單使用(不區分大小寫)

来源:https://www.cnblogs.com/Qsunshine/archive/2019/02/21/redis.html
-Advertisement-
Play Games

key * 查看redis中的所有鍵(當鍵的數量較多會影響性能,不建議生產環境中使用) exists key 判斷一個鍵是否存在,存在返回1,否則返回0 del key [key...] 刪除一個或多個鍵,返回刪除的鍵的個數 (del命令的參數不支持通配符,但我們可以結合linux的管道和xargs ...


key  *   查看redis中的所有鍵(當鍵的數量較多會影響性能,不建議生產環境中使用)

exists  key    判斷一個鍵是否存在,存在返回1,否則返回0

del  key  [key...]    刪除一個或多個鍵,返回刪除的鍵的個數

(del命令的參數不支持通配符,但我們可以結合linux的管道和xargs命令自己實現刪除所有符合規則的鍵。比如要刪除所有以"user:"開頭的鍵,就可以執行 redis-cli keys "user:*" | xargs redis-cli del。另外由於del命令支持多個鍵作為參數,所以還可以執行 redis-cli del 'redis-cli keys "user:*"'來達到同樣的效果,而且性能更好)

基本命令

type  key    獲得鍵值的數據類型

set  key  value  給鍵賦值

mset  key1  v1  key2  v2  key3  v3  同時給多個鍵賦值

get  key  取值

mget  key1  key2  key3  同時獲取多個鍵值

incr  num  得到num遞增後的數字,如果沒有則創建並從0加1,即得到1,如果num不是數字類型則報錯

incrby  num  2  和incr類似,只不過可以指定遞增多少

incrbyfloat  num  6.7  可以指定增加雙精度浮點數

decr  num  得到num遞減後的數字

decrby  num  2  和decr類似,只不過可以指定遞減多少

append  key  value  在字元串後面追加值,如果該鍵不存在即為為這個鍵賦值(該命令第二個參數需要加引號,因為有可能追加空格,所以要引起來)

strlen  key  返回鍵值的長度,如果不存在返回0

散列類型

hset  key  field  value  賦值

hget  key  field  取值

hmset  key  field1  v1  field2  v2  field3  v3  同時賦值多個

hmget  key  field1  field2  field3  同時獲取多個值

hgetall  key  獲取全部

hset 方便之處在於不用區分是插入還是更新,統統用hset,如果不存在即插入,返回1,如果存在即更新,返回0。

在redis中每個鍵都屬於一個明確的數據類型,如通過hset命令建立的鍵是散列類型,通過set命令建立的鍵是字元串類型等。使用一種數據類型的命令操作另一種數據類型的鍵會提示錯誤。

hexists  key  field   該命令用來判斷一個欄位是否存在,如果存在返回1,否則返回0,如果鍵不存在也會返回0。

hsetnx  key  field  value  當欄位不存在時賦值,和命令hset類似,只不過執行該命令如果鍵存在不做任何操作(後面的nx表示 if not exists)

hincrby  key  field  increment  和incrby類似,可以使欄位值增加指定整數。散列類型沒有hincr命令,但是可以通過hincrby key field 1來實現

hdel  key  field  [field...]   hdel命令可以刪除一個或多個欄位,返回值是被刪除的欄位個數

hkeys  key  只獲取鍵的欄位名(對象的屬性名)

hvals  key   只獲得鍵的欄位值(對象的屬性值)

hlen  key   獲取欄位數量

列表類型

lpush  key  value  [value...]  從左邊往列表放數據,返回當前列表長度

rpush  key  value  [value...]  從右邊往列表放數據,返回當前列表長度

lpop  key    從最左邊移除一個元素,並且把移除的元素返回

rpop  key    從最右邊移除一個元素,並且把移除的元素返回

lrange  key  start  stop  獲取列表中的片段,索引從0開始,左右都包含,不會像lpop一樣刪除片段,支持負索引,負索引就是從右邊開始數,如果start>stop返回空列表,如果stop大於最大則返回到最後一個元素

lrem  key  count  value  lrem命令會刪除列表中前count個值為value的元素,返回值是實際刪除的元素個數。根據count值的不同,lrem命令的執行方式會略有差異:

  當count>0時lrem命令會從列表左邊開始刪除前count個值為value的元素;

  當count<0時lrem命令會從列表右邊開始刪除前|count|個值為value的元素;

  當count=0時lrem命令刪除所有的值為value的元素。

lindex  key  index   返回指定索引的元素,從0開始,正數從左邊數,負數從右邊數

lset   key   index  value    設置指定索引的值,將索引為index的元素賦值為value

ltrim  key  start  end   ltrim命令可以刪除指定索引範圍之外的所有元素,左右都包含

linsert   key  before|after   pivot   value   linsert命令首先會在列表中從左到右找值為pivot的元素,然後根據第二個參數是before還是after來決定將value插入到該元素的前面還是後面
rpoplpush   source   destination  該命令從命名就能看出先執行rpop命令再執行lpush命令。該命令會先從source列表的右邊彈出一個元素,然後將其加入到destination列表的左邊,並返回這個元素的值,整個過程是原子的。兩個列表可以一樣,這樣的話就是迴圈的將最右邊一個元素放到最左邊。

集合類型

sadd  key  member  [member...]   向集合中加入一個或多個元素,如果已經存在則忽略,返回成功加入的元素個數,重覆的不在計算之內

srem  key  member  [member...]    刪除一個或多個元素,返回刪除成功的個數

smembers  key   返回集合中的所有元素

sismember  key  member   判斷一個元素在集合中是否存在,存在返回1,不存在或鍵不存在返回0,無論集合中有多少元素,該命令始終可以極快的返回結果

sdiff  key  [key...]   計算集合的差集,集合A與集合B的差集表示為A-B,代表所有屬於A且不屬於B的元素構成的集合,支持同時傳多個,比如A B C應先計算A和B的差集,再計算結果與C的差集

sinter  key  [key...]    計算集合的交集,代表同時屬於集合A和集合B的元素構成的集合,支持同時傳多個,即屬於所有集合的元素構成的集合

sunion  key  [key...]    計算集合的並集,代表屬於集合A或屬於集合B的元素構成的集合,支持同時傳多個,即屬於任何一個集合的元素構成的集合

scard  key   該命令用來獲得集合中的元素個數
sdiffstore  destination  key  [key...]   和sdiff命令功能一樣,區別在於前者不會直接返回運算結果,而是將結果存儲在destination中,常用於需要進行多步集合運算的場景中,如需要先計算差集再將結果和其他鍵計算交集

sinterstore  destination  key  [key...]  性質同上

sunionstore  destination  key  [key...]   性質同上

srandmember  key  [count]   該命令用來從集合中獲取一個元素,還可以傳遞count參數來一次隨機獲得多個元素,根據count的正負不同,具體表現也不同:

  當count為正數時,會隨機從集合里獲得count個不重覆的元素;

  當count為負數時,會隨機從集中里獲得|count|個元素,有可能相同;

spop  key    從集合中隨機彈出一個元素,並刪除,返回彈出的元素

有序集合類型

這裡的有序並不是按加入集合的順序排序,而是有序集合會有一個分數,根據這個分數排序

zadd  key  score  member  [score member...]   該命令用來向有序集合中加入一個元素和該元素的分數,如果該元素已經存在則會用新的分數替換原有的分數。返回新加入到集合中的元素個數,不包含之前已經存在的元素。(+inf和-inf分別表示正無窮和負無窮)

zscore  key  member   獲得元素的分數

zrange  key  start  stop  [withscores]   該命令會按照元素分數從小到大的順序返回索引從start到stop之間的所有元素,同樣的從0開始,包括兩端,支持負數,如果在尾部加上參數withscores,會同時獲得元素的分數。如果分數相同會按照ASCLL碼排序

zrevrange  key  start  stop  [withscores]    從大到小排序

zrangebyscore  key  min  max  [withscores]  [limit offset count]   該命令按照元素分數從小到大的順序返回分數在min和max之間(包含兩端)的元素,如果希望分數範圍不包含端點值,可以在分數前加上"("符號,同樣支持負無窮(-inf)和正無窮(+inf),加上withscores參數會同時返回元素分數,後面可以加上參數limit,使用方法和mysql相同。

zrevrangebyscore  key  min  max  [withscores]  [limit offset count]    按照元素分數從大到小的順序排序,需要註意的是該命令的min和max的參數順序是相反的。

zincrby  key  increment  member   該命令可以增加一個元素的分數,返回值是更改後的分數,可以是負數即減分,如果元素不存在會先添加元素分數為0,再加上該分數。

zcard  key   獲得集合中元素的數量

zcount  key  min  max    獲得指定分數範圍內的元素個數(min和max參數的特性和前面的一樣)

zrem  key  member  [member...]    刪除一個或多個元素,返回成功刪除的元素數量

zremrangebyrank  key  start  stop    按照元素分數從小到大的順序刪除處在指定排名範圍內的元素,並返回刪除的元素數量。

zremrangebyscore  key  min  max   刪除指定分數範圍內的所有元素(min和max參數的特性和前面的一樣)並返回刪除的元素數量。

zrank  key  member   按照元素分數從小到大的順序獲得指定的元素的排名

zrevrank  key  member    按照元素分數從大到小的順序獲得指定的元素的排名

zinterstore  destination  numkeys  key  [key...]  [weights weight [weight...]]  [aggregate sum|min|max]  該命令用來計算多個有序集合的交集並將結果存儲在destination鍵中(同樣以有序集合類型存儲),返回值為destination鍵中的元素個數。

destination鍵中的元素分數是由aggregate參數決定的:

  當aggregate是sum時(也就是預設值),destination鍵中元素的分數是每個參與計算的集合中該元素分數的和;比如集合A:1 a 2 b 3 c,集合B:10 a 20 b,則結果為集合:11 a 22 b

  當aggregate是min時,destination鍵中的元素的分數是每個參與計算的集合中元素分數的最小值;比如集合A:1 a 2 b 3 c,集合B:10 a 20 b,則結果為集合:1 a 2 b

  當aggregate是max時,destination鍵中的元素的分數是每個參與計算的集合中元素分數的最大值;比如集合A:1 a 2 b 3 c,集合B:10 a 20 b,則結果為集合:10 a 20 b

  該命令還能夠通過weights參數設置每個集合的權重,每個集合在參與計算時元素得分數會被乘上該集合的權重。例如執行以下命令:

  zinterstore  destination  2  A  B  weights  1  0.1

  過程是A中元素乘以1,B中元素乘以0.1,然後再求交集,則結果為集合:(1*1+10*0.1)= 2 a (2*1+20*0.1)= 4 b

zunionstore   該命令為計算集合中的並集,性質同上


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 一、LCD顯示圖像的過程如下: 其中,VSYNC和HSYNC是有寬度的,加上後如下: 參數解釋: HBP(Horizontal Back Porch)水平後沿:在每行或每列的象素數據開始輸出時要插入的象 素時鐘周期數 HFP(Horizontal Front Porch )水平前沿:在每行或每列的象 ...
  • mysql配置文件 mysql的配置文件為/etc/my.cnf 配置文件查找次序:若在多個配置文件中均有設定,則最後找到的最終生效 mysql常用配置文件參數: 參數 |說明 : |: port = 3306 | 設置監聽埠 socket = /tmp/mysql.sock | 指定套接字文件位 ...
  • 摘要 通過前面的基礎學習,本章進入最為激動的機器人自主導航的學習。在前面的學習鋪墊後,終於迎來了最大樂趣的時刻,就是賦予我們的miiboo機器人能自由行走的生命。本章將圍繞機器人SLAM建圖、導航避障、巡航、監控等內容展開。本章內容: 1.在機器人上使用感測器 2.google-cartograph ...
  • usb無線網卡驅動(rtl8192cu) 內核編譯、驅動編譯、iw等工具編譯 環境 板卡:hi3559av100(arm64) 交叉編譯鏈:aarch64-himix100-linux- usb無線網卡:rtl8192cu(ID 0bda:8178) 1、內核編譯 在內核中,不僅要包含相應無線驅動、 ...
  • Transmission簡介 Transmission是一種BitTorrent客戶端,特點是跨平臺的後端和簡潔的用戶界面,硬體資源消耗極少,支持包括Linux、BSD、Solaris、Mac OS X等多種操作系統,以及Networked Media Tank、WD MyBook、ReadyNAS ...
  • 用phpstudy搭建的lnmp環境下mysql授權遠程連接 簡單高效 這是因為mysql 里的優先順序不是所有人(提前檢查防火牆是關閉狀態)1、使用phpstudy安裝的mysql沒有放置到可以直接調用的目錄里,所以只能使用絕對路徑來訪問:/phpstudy/mysql/bin/mysql -u用戶 ...
  • 本次是虛擬機裝的centos7的內核不知原因以外丟失造成無法開機,開機顯示找不到內核! 恢復方法: 掛載新的ISO文件,然後進入bios選擇dvd啟動。 啟動後進入Troublesshooting,然後選擇救援模式Rescue a centos system. 一路continue,ok進入救援模式 ...
  • 1、從docker中獲取mysql8.0.13鏡像 2、運行 mysql8.0.13 鏡像 3、登陸mysql 4、解決方法:進入mysql8.0.13容器 5、在容器裡面登陸資料庫 6、進入mysql庫,查看user表,可以看到root加密方式 7、修改root用戶插件驗證方式: 8、刷新許可權 9 ...
一周排行
    -Advertisement-
    Play Games
  • 前言 本文介紹一款使用 C# 與 WPF 開發的音頻播放器,其界面簡潔大方,操作體驗流暢。該播放器支持多種音頻格式(如 MP4、WMA、OGG、FLAC 等),並具備標記、實時歌詞顯示等功能。 另外,還支持換膚及多語言(中英文)切換。核心音頻處理採用 FFmpeg 組件,獲得了廣泛認可,目前 Git ...
  • OAuth2.0授權驗證-gitee授權碼模式 本文主要介紹如何筆者自己是如何使用gitee提供的OAuth2.0協議完成授權驗證並登錄到自己的系統,完整模式如圖 1、創建應用 打開gitee個人中心->第三方應用->創建應用 創建應用後在我的應用界面,查看已創建應用的Client ID和Clien ...
  • 解決了這個問題:《winForm下,fastReport.net 從.net framework 升級到.net5遇到的錯誤“Operation is not supported on this platform.”》 本文內容轉載自:https://www.fcnsoft.com/Home/Sho ...
  • 國內文章 WPF 從裸 Win 32 的 WM_Pointer 消息獲取觸摸點繪製筆跡 https://www.cnblogs.com/lindexi/p/18390983 本文將告訴大家如何在 WPF 裡面,接收裸 Win 32 的 WM_Pointer 消息,從消息裡面獲取觸摸點信息,使用觸摸點 ...
  • 前言 給大家推薦一個專為新零售快消行業打造了一套高效的進銷存管理系統。 系統不僅具備強大的庫存管理功能,還集成了高性能的輕量級 POS 解決方案,確保頁面載入速度極快,提供良好的用戶體驗。 項目介紹 Dorisoy.POS 是一款基於 .NET 7 和 Angular 4 開發的新零售快消進銷存管理 ...
  • ABP CLI常用的代碼分享 一、確保環境配置正確 安裝.NET CLI: ABP CLI是基於.NET Core或.NET 5/6/7等更高版本構建的,因此首先需要在你的開發環境中安裝.NET CLI。這可以通過訪問Microsoft官網下載並安裝相應版本的.NET SDK來實現。 安裝ABP ...
  • 問題 問題是這樣的:第三方的webapi,需要先調用登陸介面獲取Cookie,訪問其它介面時攜帶Cookie信息。 但使用HttpClient類調用登陸介面,返回的Headers中沒有找到Cookie信息。 分析 首先,使用Postman測試該登陸介面,正常返回Cookie信息,說明是HttpCli ...
  • 國內文章 關於.NET在中國為什麼工資低的分析 https://www.cnblogs.com/thinkingmore/p/18406244 .NET在中國開發者的薪資偏低,主要因市場需求、技術棧選擇和企業文化等因素所致。歷史上,.NET曾因微軟的閉源策略發展受限,儘管後來推出了跨平臺的.NET ...
  • 在WPF開發應用中,動畫不僅可以引起用戶的註意與興趣,而且還使軟體更加便於使用。前面幾篇文章講解了畫筆(Brush),形狀(Shape),幾何圖形(Geometry),變換(Transform)等相關內容,今天繼續講解動畫相關內容和知識點,僅供學習分享使用,如有不足之處,還請指正。 ...
  • 什麼是委托? 委托可以說是把一個方法代入另一個方法執行,相當於指向函數的指針;事件就相當於保存委托的數組; 1.實例化委托的方式: 方式1:通過new創建實例: public delegate void ShowDelegate(); 或者 public delegate string ShowDe ...