二、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
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...