2015年10月8日 星期四

Redis筆記-數據類型-String

Redis 數據類型 String


  1. 介紹

  2. String是redis最基本的類型,而且string類型是二進位安全的。

    也就是說String可以包含任何數據。

     比如jpg圖片或者序列化的對象。

    從內部實現來看其實string可以看作byte數組,最大上限是1G位元組。

    下面為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類型。

  3. 指令對應說明

  4. 指令說明
    APPEND拼接字串
    BITCOUNT計算字串中的二進位值被設成1的個數
    BITOP字串中的二進位值的位元操作
    DECR遞減值一
    DECRBY遞減指定的值
    GET取得指定鍵值的內容
    GETBIT取得指定鍵值的二進位內容
    GETRANGE取得指定鍵值的資料特定位置的內容
    GETSET設定指定鍵值的內容,並返回舊值
    INCR遞增值一
    INCRBY遞增指定的值
    INCRBYFLOAT遞增指定的浮點數值
    MGET一次取回多組指定的key value
    MSET一次設定多組key value
    MSETNX一次設定多組key value,並且所有設定的key都不存在才成功
    PSETEX設定key value,並指定過期時間,單位是毫秒
    SET設定key value
    配合ex參數設定過期時間,單位是秒
    配合px參數設定過期時間,單位是毫秒
    配合nx參數只有key不存在時才成功
    配合xx參數只有key已存在時才成功
    SETBIT設定指定鍵值的二進位資料
    SETEX設定key value,並指定過期時間,單位是秒
    SETNX設定key value,並只有在key不存在時才成功
    SETRANGE更改特定位置的資料內容
    STRLEN取得指定鍵值的內容長度