Redis數據類型之String字符串類型

1、字符串(string)

  • string是redis最基本的類型,一個key對應一個value。

  • redis的string可以包含任何數據。包括jpg圖片或者序列化的對象。
    單個value值最大上限是1G字節, 如果只用string類型,redis就可以被看作加上持久化特性(服務器重啓之後,數據不丟失)的memcache

  • string類型是二進制安全的。意思是redis的string可以包含任何數據。比如jpg圖片或者序列化的對象 。

  • string類型是Redis最基本的數據類型,一個鍵最大能存儲512MB。

二進制安全是指,在傳輸數據時,保證二進制數據的信息安全,也就是不被篡改、破譯等,如果被攻擊,能夠及時檢測出來

二進制安全特點:
1、編碼、解碼發生在客戶端完成,執行效率高
2、不需要頻繁的編解碼,不會出現亂碼

1.1 String命令

在這裏插入圖片描述

(1)set
設置鍵,值
語法:set 鍵名稱 值
例如:我們添加一個name=“xiaoqian”的鍵值對。
注意:重新設置則直接覆蓋。
在這裏插入圖片描述

(2)get
獲取key對應的string值,如果key不存在返回 nil,
語法:get 鍵值
在這裏插入圖片描述

  • mset key1 value1 ... keyN valueN 一次設置多個key的值
  • mget key1 key2 ... keyN 一次獲取多個key的值
    在這裏插入圖片描述

(3)incr
increment 對key的值做加加操作,並返回新的值,每執行一次值加1,值類型要是數據類型。
語法:incr key
在這裏插入圖片描述
在這裏插入圖片描述
decr與incr操作一致,就是減一操作
在這裏插入圖片描述
(4)incrby
執行加法的命令,可以指定相加的值
incrby key integer 同incr,加指定值
decrby key integer 同decr,加指定值
在這裏插入圖片描述

在這裏插入圖片描述
在這裏插入圖片描述

  • type key // 查看數據類型
    在這裏插入圖片描述

賦值語法:
SET KEY_NAME VALUE
Redis SET 命令用於設置給定 key 的值。如果 key 已經存儲值, SET 就覆寫舊值,且無視類型

SETNX key value //解決分佈式鎖 方案之一
只有在 key 不存在時設置 key 的值。Setnx(SET if Not eXists) 命令在指定的 key 不存在時,爲 key 設置指定的值
在這裏插入圖片描述
在這裏插入圖片描述

MSET key value [key value …]
同時設置一個或多個 key-value 對

取值語法:
GET KEY_NAME
Redis GET命令用於獲取指定 key 的值。如果 key 不存在,返回 nil 。如果key 儲存的值不是字符串類型,返回一個錯誤。
在這裏插入圖片描述
GETRANGE key start end
用於獲取存儲在指定 key 中字符串的子字符串。字符串的截取範圍由 start 和 end 兩個偏移量決定(包括 start 和 end 在內)
在這裏插入圖片描述

GETBIT key offset
對 key 所儲存的字符串值,獲取指定偏移量上的位(bit)

MGET key1 [key2…]
獲取所有(一個或多個)給定 key 的值

GETSET語法: GETSET KEY_NAME VALUE
Getset 命令用於設置指定 key 的值,並返回 key 的舊值,當 key 不存在時,返回 nil

STRLEN key
返回 key 所儲存的字符串值的長度
在這裏插入圖片描述

刪除語法:
DEL KEY_Name
刪除指定的KEY,如果存在,返回值數字類型。

自增/自減:
INCR KEY_Name
Incr 命令將 key 中儲存的數字值增1。如果 key 不存在,那麼 key 的值會先被初始化爲 0 ,然後再執行 INCR 操作
自增:INCRBY KEY_Name 增量值
Incrby 命令將 key 中儲存的數字加上指定的增量值
自減:DECR KEY_NAME 或 DECYBY KEY_NAME 減值
decR 命令將 key 中儲存的數字減1

字符串拼接:APPEND KEY_NAME VALUE
Append 命令用於爲指定的 key 追加至未尾,如果不存在,爲其賦值

1.2 應用場景:

  • 1、String通常用於保存單個字符串或JSON字符串數據
  • 2、因String是二進制安全的,所以你完全可以把一個圖片文件的內容作爲字符串來存儲
  • 3、計數器(常規key-value緩存應用。常規計數: 微博數, 粉絲數)

INCR等指令本身就具有原子操作的特性,所以我們完全可以利用redis的INCR、INCRBY、DECR、DECRBY等指令來實現原子計數的效果。假如,在某種場景下有3個客戶端同時讀取了mynum的值(值爲2),然後對其同時進行了加1的操作,那麼,最後mynum的值一定是5。
不少網站都利用redis的這個特性來實現業務上的統計計數需求。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章