redis常用資料型別操作命令集錦

不該拋棄自己發表於2018-06-12

redis操作命令集錦

redis中五種資料型別

  • 1) 字串 String
    特點: 儲存所有的字元和字串
    應用場景: 做快取使用
  • 2) 雜湊 hash
    特點: 相當於java中hashMap集合
    應用場景: 可以儲存javaBean物件, 此種使用場景不多,可被String替代
  • 3) list 集合
    特點: 相當於java中linkList, 是一個連結串列的結構
    應用場景: 做任務佇列
    • 在java中客戶端提供了執行緒安全獲取集合資料的方式
  • 4) set 集合
    特點: 唯一, 無序
    應用場景: 集合運算
    例如去重複的操作
  • 5) 有序set集合: sorted set
    特點:唯一, 有序
    應用場景: 一般用來做排行榜

redis中String型別相關命令

  • 賦值: set key value
    設定key持有指定的字串value,如果該key存在則進行覆蓋操作。總是返回”OK”
  • 取值: get key
    獲取key的value。如果與該key關聯的value不是String型別,redis將返回錯誤資訊,因為get命令只能用於獲取String value;如果該key不存在,返回(nil)
  • 刪除: del key [key …]
    刪除指定的key,返回“(integer) n”,n表示成功刪除的個數
  • 數值增減:
    增加值: incr key
    將指定的key的value原子性的遞增1.如果該key不存在,其初始值為0。如果value的值不能轉成整型,如hello,該操作將執行失敗並返回相應的錯誤資訊。
    減少值: decr key
    將指定的key的value原子性的遞減1.如果該key不存在,其初始值為0。如果value的值不能轉成整型,如hello,該操作將執行失敗並返回相應的錯誤資訊
    • 增加指定的值: incrby key increment
      將指定的key的value原子性增加increment,如果該key不存在,初始值為0。如果該值不能轉成整型,如hello,則失敗並返回錯誤資訊
    • 減少指定的值: decrby key decrement
      將指定的key的value原子性減少decrement,如果該key不存在,初始值為0。如果該值不能轉成整型,如hello,則失敗並返回錯誤資訊
  • 拼接value值: append key value
    拼接字串。如果該key存在,則在原有的value後追加該值;如果該key不存在,則重新建立一個key將值設為value,返回“(integer) n”,n表示拼接後字串長度

redis中hash型別的相關命令

  • 賦值:
    設定指定key的field的值:hset key field value,key為一個字串,value類似於map,同樣有一個field和value
    設定指定key的多個field的值:hmset key field value [field value …]
  • 取值:
    獲取指定key的field的值: hget key field
    獲取指定key的多個field值: hmget key field [field …]
    獲取指定key中的所有的field的值: hgetall key
  • 刪除:
    hdel key field [field …] :可以刪除一個或多個欄位,返回“(integer) n”,n表示被成功刪除的欄位個數
    del key :刪除整個內容
  • 增加數字:
    hincrby key field increment :為某個key的某個integer屬性增加值
  • 判斷某個key中的filed是否存在: hexists key field
    返回0表示沒有, 返回1表示有
  • 獲取key中所包含的field的數量: hlen key
  • 獲取所有的key: hkeys key
    注意這裡指的獲取所有的map中的key
  • 獲取所有的value: hvals key
    注意這裡指的獲取所有的map中的value

redis中list集合的相關命令

redis的中的list集合類似於java中的雙端佇列, 支援向兩端操作

  • 新增:
    從左側新增: lpush key value [value …]
    在指定的key所關聯的list的頭部插入所有的values,如果該key不存在,該命令在插入的之前建立一個與該key關聯的空連結串列,之後再向該連結串列的頭部插入資料。插入成功,返回元素的個數。
    從右側新增: rpush key value [value …]
    在該list的尾部新增元素
  • 檢視列表 : lrange key start end
    獲取連結串列中從start到end的元素的值,start、end從0開始計數;也可為負數,若為-1則表示連結串列尾部的元素,-2則表示倒數第二個,以此類推
  • 刪除(彈出):
    從左側彈出:lpop key
    返回並彈出指定的key關聯的連結串列中的第一個元素,即頭部元素。如果該key不存在,返回nil;若key存在,則返回連結串列的頭部元素
    從右側彈出: rpop key
    從尾部彈出元素
  • 獲取列表中元素的個數: llen key
    返回指定的key關聯的連結串列中的元素的數量
  • 向指定的key插入資料, 僅在key存在時插入, 不存在則不執行
    從左側:lpushx key value
    從右側: rpushx key value
  • lrem key count value:
    刪除count個值為value的元素,如果count大於0,從頭向尾遍歷並刪除count個值為value的元素,如果count小於0,則從尾向頭遍歷並刪除。如果count等於0,則刪除連結串列中所有等於value的元素
  • lset key index value:
    設定連結串列中的index的腳標的元素值,0代表連結串列的頭元素,-1代表連結串列的尾元素。index不存在則拋異常。
  • linsert key before|after pivot value
    在第一個pivot元素前或者後插入value這個元素。
  • rpoplpush resource destination
    將連結串列中的尾部元素彈出並新增到頭部。[迴圈操作]

redis中的set集合的相關命令操作

  • 新增: sadd key member [member …]
    向set中新增資料,如果該key的值已有則不會重複新增,返回“(integer) n”,n表示成功新增的member個數
  • 刪除: srem key member [member …]
    刪除set中指定的成員
  • 獲取所有的元素: smembers key
    獲取set中所有的成員(sdiff key)
  • 判斷元素是否存在: sismember key member
    判斷引數中指定的成員是否在該set中,1表示存在,0表示不存在或者該key本身就不存在。(無論集合中有多少元素都可以極速的返回結果)
  • 集合的差集運算: sdiff key [key …]
    返回key1與key2中相差的成員,而且與key的順序有關。即返回差集
  • 集合的交集運算:sinter key [key …]
    返回交集, 兩個key都有的
  • 集合的並集運算:sunion key [key …]
    返回並集
  • 獲取set中成員的數量:
    scard key
  • 隨機返回set中的成員:
    srandmember key [count] ,count表示要返回的不重複key的個數
  • 將key1、key2相差的成員儲存在destination上:
    sdiffstore destination key [key …]
  • 將返回的交集儲存在destination上:
    sinterstore destination key [key …]
  • 將返回的並集儲存在destination上:
    sunionstore destination key [key …]

redis中的sortedset集合的相關操作:

  • 新增資料: zadd key score member [score member …]
    將所有成員以及該成員的分數存放到sorted-set中。如果該元素已經存在則會用新的分數替換原有的分數。返回值是新加入到集合中的元素個數,不包含之前已經存在的元素
  • 獲得元素:
    zscore key member: 返回指定元素的值
    zcard key: 獲取集合中的成員數量
  • 刪除元素:zrem key member [member …]
    移除集合中指定的成員,可以指定多個成員。
  • 範圍查詢:
    zrange key start end [withscores]: 獲取集合中腳標為start-end的成員,[withscores]參數列明返回的成員包含其分數
    zrevrange key start stop [withscores]: 按照元素分數從大到小的順序返回索引從start到stop之間的所有元素(包含兩端的元素)
  • zremrangebyrank key start stop: 按照排名範圍刪除元素
  • zremrangebyscore key min max: 按照分數範圍刪除元素
  • zrangebyscore key min max [withscores] [limit offset count]:
    返回分數在[min,max]的成員並按照分數從低到高排序。[withscores]:顯示分數;[limit offset count]:offset,表明從腳標為offset的元素開始並返回count個成員a
  • zincrby key increment member:
    設定指定成員的增加的分數。返回值是更改後的分數
  • zcount key min max:
    獲取分數在[min,max]之間的成員
  • zrank key member:
    返回成員在集合中的排名。(從小到大)
  • zrevrank key member
    返回成員在集合中的排名。(從大到小)

相關文章