Redis學習筆記之Redis字符串String(五)

Redis學習筆記之Redis字符串String(五)

特色【轉】

     字符串類型最大的特色就是單key單value。redis

    string是redis最基本的類型,並且string類型是二進制安全的。c#

      redis的string能夠包含任何數據。好比jpg圖片或者序列化的對象。從內部實現來看其實string能夠看做byte數組,最大上限是1G字節 api

下面是string類型的定義:數組

struct sdshdr { 
long len; 
long free; 
char buf[]; 
}; 
buf是個char數組用於存貯實際的字符串內容。其實char和c#中的byte是等價的,都是一個字節 
len是buf數組的長度,free是數組中剩餘可用字節數。 
由此能夠理解爲何string類型是二進制安全的了。由於它本質上就是個byte數組。固然能夠包含任何數據了。 
另外string類型能夠被部分命令按int處理.好比incr等命令, 
redis的其餘類型像list,set,sorted set ,hash它們包含的元素與都只能是string類型。 
若是隻用string類型,redis就能夠被看做加上持久化特性的memcached.固然redis對string類型的操做比memcached多不少啊。安全

經常使用api

set key:

【格式】set key value
【做用】設置key和value,若是存在能夠覆蓋
例如: 
  $: set k1 v1

get key

【格式】get key
【做用】獲取某個key的value
例如: 
  $: set k1 v1
  $: get k1 #返回v1

del key

【格式】del key
【做用】刪除某個key
例如: 
  $: set k1 v1
  $: del k1

append key value

【格式】append key value
【做用】對value追加內容
例如:
  $:set k2 v2
  $:append k2 v2
  $:get k2    #返回的value=v2v2

strlen key

【格式】strlen key
【做用】獲取key對應value的長度
例如:
  $: set k2 v2 v2
  $: strlen k2 # 4

incr key 

【格式】incr key 
【做用】對數字類型的value+1操做,若是不是數字類型的報錯
例如:
  $: set num 1
  $: incr num
  $: get num # 返回2

decr key

【格式】decr key
【做用】對數字類型的value-1操做,若是不是數字類型的報錯
例如:
  $: set num 10
  $: decr num
  $: get num # 返回9

incrby key n

【格式】incrby key n
【做用】對數字類型的value+n操做,若是不是數字類型的報錯
例如:
  $: set num 1
  $: incr num 11
  $: get num # 返回12

decrby key m

【格式】decrby key m
【做用】對數字類型的value-m操做,若是不是數字類型的報錯
例如:
  $: set num 100
  $: decr num 45
  $: get num # 返回55

getrange key begin end

【格式】getrange key begin end
【做用】截取範圍內的字符串[begin,end]
例如:
   $:set k2 v2v2
   $:getrange k2 1 2  #則返回2v

setrange key index newvalue

【格式】setrange key index newvalue
【做用】從index處用newvalue覆蓋舊的value
例如:
  $:set k2 v2v2
  $:set k2 1 xx
  $:get k2  #返回vxx2

setex key time value

【格式】setex key time value
【做用】設置key而且設置過時時間,單位爲秒
例如:
   $: setex k3 100 v3 
   $: ttl k3   # 使用ttl key來查看剩餘過時時間

setnx key value

【格式】setnx key value
【做用】若是key不存在,設置成功,不然設置失敗
例如:
  $:del k3
  $:setnx k3 v3_new   #設置成功
  $:setnx k3 vvv3     #設置失敗

mget key1 key2 key3 ...

【格式】mget key1 key2 key3
【做用】若是key不存在,設置成功,不然設置失敗
例如:
  $: set k1 v1
  $: set k2 v2
  $: set k3 v3
  $: mget k1 k2 k3 k4  #key不存在直接返回(nil)

mset key1 value1 key2 value2 ...

【格式】mset key1 value1 key2 value2 ...
【做用】同set key存在則覆蓋
例如:
   $: mset k1 v11 k2 v22 k3 v33  #能夠對上面mget的例子進行優化
   $: mget k1 k2 k3 k4 #查看了k1,k2,k3,k4的值

msetnx key1 value1 key2 value2 key3 value3 ...

【格式】msetnx key1 value1 key2 value2 key3 value3 ...
【做用】同setnx,只有key都不存在才成功
例如:
  $: del k1
  $: del k2
  $: del k3
  $: del k4
  $: msetnx k1 kk1 k2 kk2 k3 kk3 # 成功
  $: msetnx k3 vv3 k4 vv4 #失敗,k3已經存在了,
  $: get k4 # 返回 (nil)

所有API

網址: http://redisdoc.com/app

相關文章
相關標籤/搜索