1. 程式人生 > >redis(四)

redis(四)

利用 不存在 cond 是否 long image 整數 開始 常見

redis的五種數據類型之String

  1、string類型

    一個鍵最多可以存儲512MB

    1》SET:設置key對應的value

    語法:SET key value[EX seconds]等等

    SET testStr1 ‘this is a test1‘

    SET testStr2 ‘this is a test2‘

    註意:如果key已經存在數據庫中,那麽同名會產生覆蓋

    有關於EX,PX,NX,XX內容可以參考Github

    2》GET:根據key來找到對應的value

    語法:GET key

    GET testStr1

    GET testStr2

    當然我們在第二節的時候說過,如果沒有對應的值get XXX這樣我們會得到nil的返回值

    技術分享圖片

    以上的截圖就是我們set兩個,get兩個,重復設置,覆蓋一個的結果啦

    註意:如果key不是字符串就會報錯

技術分享圖片

    

    3》SETRANGE:設置字符串的一部分

    語法:SETRANGE key offset value

    SETRANGE testStr1 3 your

    技術分享圖片

    以下自己測試

    SETRANGE testStr1 4 not

    SETRANGE testStr1 2 5 long

    SETRANGE testStr1 6 test

    註意:如果設置的key原來的字符串長度比偏移量小,就會以零字節(\x00)填充

    

    4》GETRANGE:返回字符串的一部分

    語法:GETRANGE key index

    GETRANGE testStr1 0 4

    GETRANGE testStr1 0 -3

    GETRANGE testStr1 -4-2

    GETRANGE testStr1 0 1000  獲取所有的字符串

    技術分享圖片

    我們的下表是從零開始截取到4的位置

    同樣的我們的下表也支持負數,和我們python的range函數差不多啦

    5》GETSET:是指新key的值,返回舊的key

    SET testStr3 ‘king‘

    GET testStr3

    GETSET testStr3 ‘queen‘

    技術分享圖片

    實現字符串自增長的INCR,作用是我們常見到的計數器

    技術分享圖片

    註意:當可以不存在的時候,GETSET返回時nil

    6》MSET:一次設置多個鍵值對

    MSET key value [key value...]

    MSET testStr4 ‘king‘ testStr5 ‘queen‘

    7》MGET:一次獲取多個鍵值對

    MGET key key ...

    MGET testStr4 testStr5

    技術分享圖片

    如果沒有這個key也是不會報錯的,會返回一個nil

    8》STRLEN:獲取字符串的長度

    STRLEN testStr4

    技術分享圖片

    如果沒有key則會返回(integer)0

    EXISTS key檢測可以是否存在,返回值是0不存在,返回值是1存在

    

    9》SEXNX:只有key不存在的時候才能設置成功

    用法和SET一樣,相當於EXISTS + SET的作用

    10》SETEX:設置一個鍵多久時間有效(規定時間內可以獲得該數據)單位:秒

    語法:SETEX key seconds value

    SETEX time 60 ‘times‘

    利用TTL獲取剩余時間

    語法:TTL key

    技術分享圖片

    還有一個PSETEX設置同上,時間是以毫秒為單位,PTTL獲取時間

    

    11》MSETNX:一次設置多個鍵值對,只有所有的可以不存在時,才會設置成功

    語法:MSETNX key value [key value]

    MSETNX testStr5 ‘a‘ testStr6 ‘b‘

    技術分享圖片

    

    12》INCR:把key中存儲的數字加1

    語法:INCR key

    SET counter1 10

    GET counter1    -->10

    INCR counter1    -->11

    INCR counter1    -->12

    INCR counter1    -->13

    這種只能加1,如果相加其他的怎麽辦?

    技術分享圖片

    這裏提供了INCRBY,INCRBYFLOAT前者加整數指定步長,後者加上指定浮點數步長

    語法:INCRBY key [步長]

       INCRBYFLOAT key [浮點步長]

    INCRBY counter1 10

    GET counter1

    INCRBY counter1 3

    GET counter1

    INCRBY counter1 3.1

    技術分享圖片

    INCRBYFLOAT counter1 1.2

    GET counter1

    INCRBYFLOAT counter1 3

    GET counter1

    技術分享圖片

    13》DECR:將key中存儲的數字減1

    語法和INCR一樣就不過多的贅述,同樣的也有DECRBY但是沒有DECRBYFLOAT,這點就要註意下

    技術分享圖片

    

    以上就是有關String的大部分常用操作

redis(四)