1、簡介
Redis中所有的的資料結構都是通過一個唯一的字元串key來擷取相應的value資料。
Redis有5種基礎資料結構,分别是:
string(字元串)
list(清單)
hash(字典)
set(集合)
zset(有序集合)
本文講述的是Redis的5種基礎資料結構中的string(字元串)
2、string(字元串)相關介紹
2.1 string(字元串)的内部結構
string(字元串)是Redis最簡單也是使用最廣泛的資料結構,它的内部是一個字元數組。如圖所示:
2.2 string(字元串)的擴容
當string(字元串)的大小達到擴容門檻值時,将會對string(字元串)進行擴容,string(字元串)的擴容主要有以下幾個點:
長度小于1MB,擴容後為原先的兩倍; length = length * 2
長度大于1MB,擴容後增加1MB; length = length + 1MB
字元串的長度最大值為 512MB
3、string(字元串)的指令
3.1 單個鍵值對增删改查操作
set -> key 不存在則新增,存在則修改
set key value
get -> 查詢,傳回對應key的value,不存在傳回(nil)
get key
del -> 删除指定的key(key可以是多個)
del key [key …]
示例:
3.2 批量鍵值對
批量鍵值讀取和寫入最大的優勢在于節省網絡傳輸開銷
mset -> 批量插入
mset key value [key value …]
mget -> 批量擷取
mget key [key …]
方式二:
setex key seconds value
3.4 不存在建立存在不更新
上面的set操作不存在建立,存在則更新;此時如果需要存在不更新的場景,那麼可以使用如下這個指令
setnx -> 不存在建立存在不更新
setnx key value
3.5計數
string(字元串)也可以用來計數,前提是value是一個整數,那麼可以對它進行自增的操作。自增的範圍必須在signed long的區間通路内,[-9223372036854775808,9223372036854775808]
3.5.1 incr -> 自增1
incr key