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


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   該命令為計算集合中的並集,性質同上


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM