redis之string數據類型常用方法總結


redis 字符串(string)【需要掌握】

特點

  • 一個鍵能存儲512MB數據
  • string類型是二進制安全的,可以存儲任何數據,比如jpg圖片或序列化對象

redis字符串數據類型的相關命令用於管理redis字符串值,基本語法如下:

語法

  1. set key values 設置指定 key 的值

    127.0.0.1:6379> set name panlifu
    OK
    127.0.0.1:6379> get name 
    "panlifu"
    
  2. get key 獲取指定key的值

    127.0.0.1:6379> set name panlifu
    OK
    127.0.0.1:6379> get name 
    "panlifu"
    
  3. getrange key start end 返回key中字符串的子字符,類似python中的切片功能,不同在於redis顧頭顧尾

    127.0.0.1:6379> set name panlifu
    OK
    127.0.0.1:6379> get name 
    "panlifu"
    127.0.0.1:6379> GETRANGE name 0 3
    "panl"
    
  4. getset key value 將給定key的值設為value,並返回key的舊值(old value)

    127.0.0.1:6379> set name panlifu
    OK
    127.0.0.1:6379> get name 
    "panlifu"
    127.0.0.1:6379> GETRANGE name 0 3
    "panl"
    127.0.0.1:6379> GETSET name lt
    "panlifu"
    127.0.0.1:6379> get name
    "lt"
    
  5. getbit key offset 對key所儲存的字符串值,獲取指定偏移量上的位(bit) ?

    
    
  6. setbit key offset value 對key所儲存的字符串值,設置或清除指定偏移量上的位(bit) ?

    
    
  7. mget key1 [key2...]獲取所有(一個或多個)給定key的值

    127.0.0.1:6379> get name
    "panlifu"
    127.0.0.1:6379> set age 24
    OK
    127.0.0.1:6379> get age
    "24"
    127.0.0.1:6379> get age name
    (error) ERR wrong number of arguments for 'get' command
    127.0.0.1:6379> mget name age
    1) "panlifu"
    2) "24"
    127.0.0.1:6379> 
    
  8. setex key secondes value 將值value關聯到key,並將key的過期時間設置為secondes(以秒為單位)

    # 第一種方法
    127.0.0.1:6379> setex name 5 "panlifu"
    OK
    127.0.0.1:6379> get name
    "panlifu"
    127.0.0.1:6379> get name
    (nil)
    
    # 第二種方法
    127.0.0.1:6379> set name panlifu ex 6
    OK
    127.0.0.1:6379> get name
    "panlifu"
    127.0.0.1:6379> get name
    "panlifu"
    127.0.0.1:6379> get name
    "panlifu"
    127.0.0.1:6379> get name
    (nil)
    
  9. setnx key value 只有在key不存在時設置key的值

    127.0.0.1:6379> get name
    (nil)
    127.0.0.1:6379> setnx name panlifu
    (integer) 1
    127.0.0.1:6379> get name 
    "panlifu"
    127.0.0.1:6379> get name 
    "panlifu"
    127.0.0.1:6379> setnx name lt
    (integer) 0
    127.0.0.1:6379> get name 
    "panlifu"
    
  10. setrange key offset value 用value參數覆寫給定key所存儲的字符串值,從偏移量offset開始

    127.0.0.1:6379> set name "hello world"
    OK
    127.0.0.1:6379> get name
    "hello world"
    127.0.0.1:6379> SETRANGE name 6 "redis"
    (integer) 11
    127.0.0.1:6379> get name
    "hello redis"
    
    
  11. mset key value [key value] 同時設置一個或者多個key -value對

    127.0.0.1:6379> mset name panlifu age 18
    OK
    127.0.0.1:6379> get name
    "panlifu"
    127.0.0.1:6379> get age
    "18"
    
    
  12. msetnx key value [key value] 同時設置一個或者多個key-value對,當且僅當所有給定key都不存在

    127.0.0.1:6379> msetnx sex boy height 120
    (integer) 1
    127.0.0.1:6379> get sex
    "boy"
    127.0.0.1:6379> get height
    "120"
    127.0.0.1:6379> msetnx name lt age 17
    (integer) 0
    127.0.0.1:6379> get name
    "panlifu"
    127.0.0.1:6379> get age
    "18"
    
    

    總結:key前面有m一般都指 可以設置多個 鍵值對。 鍵后面帶nx 一般表示 只有當key不存在時,才能設置該key。

  13. strlen key 返回 key 所儲存的字符串值的長度

    127.0.0.1:6379> get name
    "panlifu"
    127.0.0.1:6379> strlen name
    (integer) 7
    
  14. psetex key milliseconds value 這個命令和 SETEX 命令相似,但它以毫秒為單位設置 key 的生存時間,而不是像 SETEX 命令那樣,以秒為單位

    127.0.0.1:6379> psetex name 1000 hehe
    OK
    127.0.0.1:6379> get name
    "hehe"
    127.0.0.1:6379> get name
    (nil)
    

    總結:當鍵以ex結尾時,一般表示設置 key的過期時間,單位為秒。當鍵前面有p且后面有ex時,也表示設置key過期時間,單位為毫秒

  15. incr key 將key中存儲的數字值增1

    127.0.0.1:6379> set age 19
    OK
    127.0.0.1:6379> get age
    "19"
    127.0.0.1:6379> incr age
    (integer) 20
    127.0.0.1:6379> incr age
    (integer) 21
    127.0.0.1:6379> get age
    "21"
    127.0.0.1:6379> set age "19"
    OK
    127.0.0.1:6379> get age
    "19"
    127.0.0.1:6379> incr age
    (integer) 20
    127.0.0.1:6379> incr age
    (integer) 21
    127.0.0.1:6379> get age
    "21"
    127.0.0.1:6379> incr age
    (integer) 22
    127.0.0.1:6379> get age
    "22"
    127.0.0.1:6379> type age
    string
    

    總結:string數據類型中的數據,value的數據類型都是string類型。只要string全為數字,即可使用incr鍵

  16. incrby key increment 將key所儲存的值加上給定的浮點增量值

    127.0.0.1:6379> get age
    "27"
    127.0.0.1:6379> incrby age 3
    (integer) 30
    127.0.0.1:6379> get age
    "30"
    
  17. incrbyfloat key increment 將 key 所儲存的值加上給定的浮點增量值(increment) 。

    127.0.0.1:6379> get age
    "30"
    127.0.0.1:6379> incrbyfloat age 1.5
    "31.5"
    127.0.0.1:6379> get age
    "31.5"
    
  18. decrby key decrement key 所儲存的值減去給定的減量值(decrement)

    127.0.0.1:6379> incrbyfloat age -1.5
    "30"
    127.0.0.1:6379> decrby age 5
    (integer) 25
    127.0.0.1:6379> get age
    "25"
    
  19. decr key 將 key 中儲存的數字值減一。

  20. append key value 果 key 已經存在並且是一個字符串, APPEND 命令將指定的 value 追加到該 key 原來值(value)的末尾。

    127.0.0.1:6379> get age
    "25"
    127.0.0.1:6379> append age hehe
    (integer) 6
    127.0.0.1:6379> get age
    "25hehe"
    
    


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM