Redis-string類型操做命令

APPEND key value

    若是key已經存在,而且爲字符串,那麼這個命令會把value追加到原來值的末尾。若是key不存在,首先建立一個空字符串,再執行追加操做。
    返回值:返回APPEND後字符串的長度。
  1. EXISTS mykey
  2. 0
  3. APPEND mykey "Hello"
  4. 5
  5. APPEND mykey " world"
  6. 11
  7. GET mykey
  8. Hello world

SETBIT

    SETBIT key offset value
    對key所存儲的字符串值,設置或清除指定偏移量上的位(bit)。
    位的設置或清除取決於value參數。
    當key不存在時,自動生成一個新的字符串值。
    
  1. SETBIT bit 100861
  2. 0
  3. SETBIT bit 100861
  4. 1
  5. GETBIT bit 10086
  6. 1
  7. GETBIT bit 100
  8. 0

BITCOUNT

   BITCOUNT key [start] [end]
     計算給定字符串中,被設置爲1 的比特位的數量。對於不存在的字符串,BITCOUNNT操做返回0。
    返回值:被設置爲1的位的數量。
  1. BITCOUNT bits
  2. 0
  3. SETBIT bits 01
  4. 0
  5. BITCOUNT bits
  6. 1
  7. SETBIT bits 31
  8. 0
  9. BITCOUNT bits
  10. 2
  • 模式:使用bitmap實現用戶上線次數統計
可使用SETBIT key爲網站上線的天數,value爲1,來肯定用戶在某天在線,從而統計出用戶的上線天數。如設置Peter在第101天在線,則可使用: 
  1. SETBIT peter 1011
    依次類推。最後統計便可獲取用戶在線天數。
 

GETBIT key offset

    對key所存儲的字符串值,獲取指定偏移量上的位。
    當offset比字符串的長度大,或者key不存在時,返回0。
  1. EXISTS bit
  2. 0
  3. GETBIT bit 10086
  4. 0
  5. SETBIT bit 41
  6. 0
  7. GETBIT bit 4
  8. 1

DECR

    將key中存儲的數字值減一。
    若是key不存在,那麼會初始化key值爲0,而後驚醒DECR操做。操做限制在64位有符號數字內,
    返回值:執行DECR命令後的key值。
    
  1. SET num 10
  2. OK
  3. DECR num
  4. 9
  5. EXISTS count
  6. 0
  7. DECR count
  8. -1

DECRBY key decrement

    將key所存儲的值減去減量decrement。
    若是key不存在,則先被初始化爲0,而後再執行操做。若是值包含錯誤的類型,則會返回一個錯誤。
    返回值:操做後的值。
  1. SET count 10
  2. OK
  3. DECRBY count 20
  4. -10
  5. EXISTS pages
  6. 0
  7. DECRBY pages 1
  8. -1
  9. DECRBY pages -1
  10. 0
  11. DECRBY pages -3
  12. 3

GET key

        返回key所關聯的字符串的值。若是key不存在,則返回nil。
         返回值:key不存在時,返回nil,不然返回key的值。
         若是key不是字符串類型,則返回一個錯誤。
  1. GET db
  2. SET DB redis
  3. OK
  4. get DB
  5. redis
  6. DEL db
  7. 0
  8. EXISTS db
  9. 0
  10. LPUSH db redis mongodb mysql
  11. 3
  12. GET db
  13. ERR Operation against a key holding the wrong kind of value

GETRANGE key start end

    返回字符串值的字串。start end指定截取範圍(包括start end在內)。負數表示從最後開始計數。
    返回值:截取的子串。
  1. SET greeting "Hello,my friend"
  2. OK
  3. GETRANGE greeting 04
  4. Hello
  5. GETRANGE greeting -1-5
  6. GETRANGE greeting -3-1
  7. end
  8. GETRANGE greeting 0-1
  9. Hello,my friend
  10. GETRANGE greeting 010000000
  11. Hello,my friend

GETSET key value

    將給定key的值設爲value,並返回key的舊值。
    當key存在但不是字符串時,返回一個錯誤。
    返回值:返回給定key的舊值。
                        當key沒有舊值,即key不存在時,返回nil。
  1. GETSET db mongodb
  2. GET db
  3. mongodb
  4. GETSET db redis
  5. mongodb
模式:GETSET和INCR組合使用,實現獲取一個原子性操做的執行計數器結果,並對結果進行復位。
    
  1. INCR mycount
  2. 1
  3. INCR mycount
  4. 2
  5. INCR mycount
  6. 3
  7. GETSET mycount 0
  8. 3

INCR key

    將key中存儲的數字值增一。
    若是key不存在,那麼key會被初始化0,再執行INCR操做。
    若是包含錯誤的數據類型,則會返回一個錯誤。
    返回值:執行INCR操做後key的值。
    
  1. SET page_view 20
  2. OK
  3. INCR page_view
  4. 21
模式:計數器

INCRBY key increment

    將key所存儲的值增長增量increment。
    若是key不存在,那麼key的值會先被初始化爲0,再執行INCRBY操做。
    
  1. SET rank 50
  2. OK
  3. INCRBY rank 20
  4. 70
  5. GET rank
  6. 70
  7. SET book "REDIS"
  8. OK
  9. INCRBY book 1
  10. ERR value is not an integer or out of range

INCRBYFLOAT key increment

    爲key中所存儲的 值加上浮點數的增量increment。不管加法計算所得的浮點數的實際精度有多長, 
INCRBYFLOAT  的計算結果也最多隻能表示小數點的後十七位。
    返回值:執行以後key的值。
    
  1. SET mykey 10.50
  2. OK
  3. INCRBYFLOAT mykey 0.1
  4. 10.6
  5. SET mykey 314e-2
  6. OK
  7. INCRBYFLOAT mykey 0.5
  8. 3.64
  9. SET mykey 4
  10. OK
  11. INCRBYFLOAT mykey 0.5
  12. 4.5

MGET key[key...]

    返回所全部給定key的值。
    若是給定key裏面,某個key不存在,則這個key返回特殊值nil。該命令永不失敗。
    返回值:一個包含全部給定key的值的列表。
  1. SET redis redis.com
  2. OK
  3. SET mongodb mongodb.com
  4. OK
  5. MGET redis mongodb mysql
  6. redis.com
  7. mongodb.com

MSET key value[key value]

    同時設置一個或多個key-value對。
    若是某個給定key存在,那麼覆蓋原有值。若是不但願被覆蓋,可使用MSENX命令。
    MSET是一個原子操做,全部給定的key都會在同一時間被設置。
    返回值:老是返回OK。
  1. MSET date "2012-05" time "11:00 am" weather "SUNNY"
  2. OK
  3. MGET date time weather
  4. 2012-05
  5. 11:00 am
  6. SUNNY
  7. SET google "google.hk"
  8. OK
  9. MSET google "google.com"
  10. OK
  11. GET google
  12. google.com

MSETNX key value[key value ...]

    同時設置多個key-value,當且僅當全部給定key都不存在。若是有一個key存在,那麼MSETNX操做會拒絕執行全部給定的key。
    MSETNX是原子操做,全部字段要麼成功,要麼失敗。
    返回值:全部key成功,返回1。失敗返回0。
  1. MSETNX rmdbs "MySql" nosql "MongoDB" key-value-store "Redis"
  2. 1
  3. MGET rmdbs nosql
  4. MySql
  5. MongoDB
  6. MSETNX rmdbs "MySql" language "Java"
  7. 0

PSETEX key milliseconds value

    已milliseconds毫秒爲單位,設置key的生存時間。
    返回值:成功返回OK。
  1. PSETEX mykey 10000"HELLO"
  2. OK
  3. PTTL mykey
  4. 7110
  5. GET mykey
  6. HELLO
  7. PTTL mykey
  8. -1
  9. GET mykey

SET key value [EX seconds] [PX milliseconds] [NX] [NX]

    將字符串value關聯到key。     
    若是key已經持有其餘值,SET操做覆蓋舊值。
    對於某個本來都有生存時間TTL的鍵來講,當SET命令成功在執行時,原TTL會被清除。
    可選參數:
  •  EX seconds:設置鍵的國企時間爲second秒。此參數等同於SETEX key second value。
  •  PX millisecond:設置鍵的過時時間爲millisecond毫秒。SET key value PX millisecond 效果等同於 PSETEX key millisecond value。
  • NX:只在key不存在時,纔對key執行操做。set key value NX 等同於: SETNX key value。
  • XX:只在鍵已經存在時,才進行操做。
  1. SET key "value"
  2. OK
  3. GET key
  4. value
  5. SET key "new-value"
  6. OK
  7. get key
  8. new-value
  9. SET key "hello" EX 100860
  10. OK
  11. TTL key
  12. 100856
  13. TTL key
  14. 100852
  15. SET key "moto" PX 123331
  16. OK
  17. TTL key
  18. 121
  19. get key
  20. moto
  21. TTL key
  22. 107
  23. SET key "value" NX
  24. SET key1 "value" NX
  25. OK
  26. SET key "value" XX
  27. OK
  28. SET key2 "value" XX

SETEX key seconds value

    將value關聯到key,並將key的生存時間設置爲seconds秒。
    若是key已經存在,SETEX將會覆蓋舊值。
    返回值:設置成功時返回OK。蛋seconds參數不合法時,返回一個錯誤。
  1. SETEX user_id 6010086
  2. OK
  3. TTL user_id
  4. 54
  5. get user_id
  6. 10086
  7. get user_id
  8. 10086
  9. TTL user_id
  10. 36

SETNX key value

    將key的值設爲value,當且僅當key不存在。
    若給定的key已經存在,則SETNX不作任何動做。SETNX 是 SET if Not eXists。
    返回值:成功1,失敗0。
  1. EXISTS job
  2. 0
  3. SETNX job "code-farmer"
  4. 1
  5. SETNX job "programmer"
  6. 0
  7. GET job
  8. code-farmer

SETRANGE key offset value

    用value參數overwrite給定key所存儲的字符串,從offset開始。
    不存在的key當作空白字符串處理。
    SETRANGE命令會確保字符串足夠長以便將value設置在指定的便宜量上。若是字符串長度比偏移量小,則空白處使用零字節(\x00)填充。
    使用的最大偏移量爲2^29 - 1。
    返回值:修改後的字符串長度。
  1. redis> SET greeting "hello world"
  2. OK
  3. redis> SETRANGE greeting 6"Redis"
  4. (integer)11
  5. redis> GET greeting
  6. "hello Redis"
  7. # 對空字符串/不存在的 key 進行 SETRANGE
  8. redis> EXISTS empty_string
  9. (integer)0
  10. redis> SETRANGE empty_string 5"Redis!"# 對不存在的 key 使用 SETRANGE
  11. (integer)11
  12. redis> GET empty_string # 空白處被"\x00"填充
  13. "\x00\x00\x00\x00\x00Redis!"

STRLEN key

    返回字符串的長度。當key不是一個字符串時,返回一個錯誤。
    返回值: 字符串長度。當key不存在時,返回0。
  1. SET mykey "Hello World"
  2. OK
  3. STRLEN mykey
  4. 11
  5. STRLEN nonestr
  6. 0

------------

mysql

以上爲Redis中對string類型的基本操做命令。redis

本文主要參考:http://redisdoc.com/sql

相關文章
相關標籤/搜索