1. 程式人生 > >redis學習筆記(14)---redis基本命令總結

redis學習筆記(14)---redis基本命令總結

del diff lan 命令 列表 對象 很多 順序 reg

http://doc.redisfans.com/ 網頁,對所有redis命令的用法與示例進行了詳細的描述

概述

Redis的鍵值可以使用物種數據類型:字符串,散列表,列表,集合,有序集合。本文詳細介紹這五種數據類型的使用方法。本文命令介紹部分只是列舉了基本的命令,至於具體的使用示例,可以參考Redis官方文檔:Redis命令大全

字符串類型

字符串是Redis中最基本的數據類型,它能夠存儲任何類型的字符串,包含二進制數據。可以用於存儲郵箱,JSON化的對象,甚至是一張圖片,一個字符串允許存儲的最大容量為512MB。字符串是其他四種類型的基礎,與其他幾種類型的區別從本質上來說只是組織字符串的方式不同而已。

基本命令

字符串操作

  1. SET 賦值,用法: SET key value
  2. GET 取值,用法: GET key
  3. INCR 遞增數字,僅僅對數字類型的鍵有用,相當於Java的i++運算,用法: INCR key
  4. INCRBY 增加指定的數字,僅僅對數字類型的鍵有用,相當於Java的i+=3,用法:INCRBY key increment,意思是key自增increment,increment可以為負數,表示減少。
  5. DECR 遞減數字,僅僅對數字類型的鍵有用,相當於Java的i–,用法:DECR key
  6. DECRBY 減少指定的數字,僅僅對數字類型的鍵有用,相當於Java的i-=3,用法:DECRBY key decrement
    ,意思是key自減decrement,decrement可以為正數,表示增加。
  7. INCRBYFLOAT 增加指定浮點數,僅僅對數字類型的鍵有用,用法:INCRBYFLOAT key increment
  8. APPEND 向尾部追加值,相當於Java中的”hello”.append(“ world”),用法:APPEND key value
  9. STRLEN 獲取字符串長度,用法:STRLEN key
  10. MSET 同時設置多個key的值,用法:MSET key1 value1 [key2 value2 ...]
  11. MGET 同時獲取多個key的值,用法:MGET key1 [key2 ...]

位操作

  1. GETBIT 獲取一個鍵值的二進制位的指定位置的值(0/1),用法:GETBIT key offset
  2. SETBIT 設置一個鍵值的二進制位的指定位置的值(0/1),用法:SETBIT key offset value
  3. BITCOUNT 獲取一個鍵值的一個範圍內的二進制表示的1的個數,用法:BITCOUNT key [start end]
  4. BITOP 該命令可以對多個字符串類型鍵進行位運算,並將結果存儲到指定的鍵中,BITOP支持的運算包含:OR,AND,XOR,NOT,用法:BITOP OP desKey key1 key2
  5. BITPOS 獲取指定鍵的第一個位值為0或者1的位置,用法:BITPOS key 0/1 [start, end]

散列類型

散列類型相當於Java中的HashMap,他的值是一個字典,保存很多key,value對,每對key,value的值個鍵都是字符串類型,換句話說,散列類型不能嵌套其他數據類型。一個散列類型鍵最多可以包含2的32次方-1個字段。

基本命令

  1. HSET 賦值,用法:HSET key field value
  2. HMSET 一次賦值多個字段,用法:HMSET key field1 value1 [field2 values]
  3. HGET 取值,用法:HSET key field
  4. HMGET 一次取多個字段的值,用法:HMSET key field1 [field2]
  5. HGETALL 一次取所有字段的值,用法:HGETALL key
  6. HEXISTS 判斷字段是否存在,用法:HEXISTS key field
  7. HSETNX 當字段不存在時賦值,用法:HSETNX key field value
  8. HINCRBY 增加數字,僅對數字類型的值有用,用法:HINCRBY key field increment
  9. HDEL 刪除字段,用法:HDEL key field
  10. HKEYS 獲取所有字段名,用法:HKEYS key
  11. HVALS 獲取所有字段值,用法:HVALS key
  12. HLEN 獲取字段數量,用法:HLEN key

列表類型

列表類型(list)用於存儲一個有序的字符串列表,常用的操作是向隊列兩端添加元素或者獲得列表的某一片段。列表內部使用的是雙向鏈表(double linked list)實現的,所以向列表兩端添加元素的時間復雜度是O(1),獲取越接近列表兩端的元素的速度越快。但是缺點是使用列表通過索引訪問元素的效率太低(需要從端點開始遍歷元素)。所以列表的使用場景一般如:朋友圈新鮮事,只關心最新的一些內容。借助列表類型,Redis還可以作為消息隊列使用。

基本命令

  1. LPUSH 向列表左端添加元素,用法:LPUSH key value
  2. RPUSH 向列表右端添加元素,用法:RPUSH key value
  3. LPOP 從列表左端彈出元素,用法:LPOP key
  4. RPOP 從列表右端彈出元素,用法:RPOP key
  5. LLEN 獲取列表中元素個數,用法:LLEN key
  6. LRANGE 獲取列表中某一片段的元素,用法:LRANGE key start stop,index從0開始,-1表示最後一個元素
  7. LREM 刪除列表中指定的值,用法:LREM key count value,刪除列表中前count個值為value的元素,當count>0時從左邊開始數,count<0時從右邊開始數,count=0時會刪除所有值為value的元素
  8. LINDEX 獲取指定索引的元素值,用法:LINDEX key index
  9. LSET 設置指定索引的元素值,用法:LSET key index value
  10. LTRIM 只保留列表指定片段,用法:LTRIM key start stop,包含start和stop
  11. LINSERT 像列表中插入元素,用法:LINSERT key BEFORE|AFTER privot value,從左邊開始尋找值為privot的第一個元素,然後根據第二個參數是BEFORE還是AFTER決定在該元素的前面還是後面插入value
  12. RPOPLPUSH 將元素從一個列表轉義到另一個列表,用法:RPOPLPUSH source destination

集合類型

集合在概念在高中課本就學過,集合中每個元素都是不同的,集合中的元素個數最多為2的32次方-1個,集合中的元素師沒有順序的。

基本命令

  1. SADD 添加元素,用法:SADD key value1 [value2 value3 ...]
  2. SREM 刪除元素,用法:SREM key value2 [value2 value3 ...]
  3. SMEMBERS 獲得集合中所有元素,用法:SMEMBERS key
  4. SISMEMBER 判斷元素是否在集合中,用法:SISMEMBER key value
  5. SDIFF 對集合做差集運算,用法:SDIFF key1 key2 [key3 ...],先計算key1和key2的差集,然後再用結果與key3做差集
  6. SINTER 對集合做交集運算,用法:SINTER key1 key2 [key3 ...]
  7. SUNION 對集合做並集運算,用法:SUNION key1 key2 [key3 ...]
  8. SCARD 獲得集合中元素的個數,用法:SCARD key
  9. SDIFFSTORE 對集合做差集並將結果存儲,用法:SDIFFSTORE destination key1 key2 [key3 ...]
  10. SINTERSTORE 對集合做交集運算並將結果存儲,用法:SINTERSTORE destination key1 key2 [key3 ...]
  11. SUNIONSTORE 對集合做並集運算並將結果存儲,用法:SUNIONSTORE destination key1 key2 [key3 ...]
  12. SRANDMEMBER 隨機獲取集合中的元素,用法:SRANDMEMBER key [count],當count>0時,會隨機中集合中獲取count個不重復的元素,當count<0時,隨機中集合中獲取|count|和可能重復的元素。
  13. SPOP 從集合中隨機彈出一個元素,用法:SPOP key

有序集合類型

有序集合類型與集合類型的區別就是他是有序的。有序集合是在集合的基礎上為每一個元素關聯一個分數,這就讓有序集合不僅支持插入,刪除,判斷元素是否存在等操作外,還支持獲取分數最高/最低的前N個元素。有序集合中的每個元素是不同的,但是分數卻可以相同。有序集合使用散列表和跳躍表實現,即使讀取位於中間部分的數據也很快,時間復雜度為O(log(N)),有序集合比列表更費內存。

基本命令

    1. ZADD 添加元素,用法:ZADD key score1 value1 [score2 value2 score3 value3 ...]
    2. ZSCORE 獲取元素的分數,用法:ZSCORE key value
    3. ZRANGE 獲取排名在某個範圍的元素,用法:ZRANGE key start stop [WITHSCORE],按照元素從小到大的順序排序,從0開始編號,包含start和stop對應的元素,WITHSCORE選項表示是否返回元素分數
    4. ZREVRANGE 獲取排名在某個範圍的元素,用法:ZREVRANGE key start stop [WITHSCORE],和上一個命令用法一樣,只是這個倒序排序的。
    5. ZRANGEBYSCORE 獲取指定分數範圍內的元素,用法:ZRANGEBYSCORE key min max,包含min和max,(min表示不包含min,(max表示不包含max,+inf表示無窮大
    6. ZINCRBY 增加某個元素的分數,用法:ZINCRBY key increment value
    7. ZCARD 獲取集合中元素的個數,用法:ZCARD key
    8. ZCOUNT 獲取指定分數範圍內的元素個數,用法:ZCOUNT key min max,min和max的用法和5中的一樣
    9. ZREM 刪除一個或多個元素,用法:ZREM key value1 [value2 ...]
    10. ZREMRANGEBYRANK 按照排名範圍刪除元素,用法:ZREMRANGEBYRANK key start stop
    11. ZREMRANGEBYSCORE 按照分數範圍刪除元素,用法:ZREMRANGEBYSCORE key min max,min和max的用法和4中的一樣
    12. ZRANK 獲取正序排序的元素的排名,用法:ZRANK key value
    13. ZREVRANK 獲取逆序排序的元素的排名,用法:ZREVRANK key value
    14. ZINTERSTORE 計算有序集合的交集並存儲結果,用法:ZINTERSTORE destination numbers key1 key2 [key3 key4 ...] WEIGHTS weight1 weight2 [weight3 weight4 ...] AGGREGATE SUM | MIN | MAX,numbers表示參加運算的集合個數,weight表示權重,aggregate表示結果取值
    15. ZUNIONSTORE 計算有序幾個的並集並存儲結果,用法和14一樣,不再贅述。

redis學習筆記(14)---redis基本命令總結