天天看點

進階程式員必須精通的Redis,第一篇之——string(字元串)

1、簡介

Redis中所有的的資料結構都是通過一個唯一的字元串key來擷取相應的value資料。

Redis有5種基礎資料結構,分别是:

string(字元串)

list(清單)

hash(字典)

set(集合)

zset(有序集合)

本文講述的是Redis的5種基礎資料結構中的string(字元串)

2、string(字元串)相關介紹

2.1 string(字元串)的内部結構

string(字元串)是Redis最簡單也是使用最廣泛的資料結構,它的内部是一個字元數組。如圖所示:

進階程式員必須精通的Redis,第一篇之——string(字元串)

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 …]

示例:

進階程式員必須精通的Redis,第一篇之——string(字元串)

3.2 批量鍵值對

批量鍵值讀取和寫入最大的優勢在于節省網絡傳輸開銷

mset -> 批量插入

mset key value [key value …]

mget -> 批量擷取

mget key [key …]
進階程式員必須精通的Redis,第一篇之——string(字元串)

方式二:

setex key seconds value
進階程式員必須精通的Redis,第一篇之——string(字元串)

3.4 不存在建立存在不更新

上面的set操作不存在建立,存在則更新;此時如果需要存在不更新的場景,那麼可以使用如下這個指令

setnx -> 不存在建立存在不更新

setnx key value
進階程式員必須精通的Redis,第一篇之——string(字元串)

3.5計數

string(字元串)也可以用來計數,前提是value是一個整數,那麼可以對它進行自增的操作。自增的範圍必須在signed long的區間通路内,[-9223372036854775808,9223372036854775808]

3.5.1 incr -> 自增1

incr key

進階程式員必須精通的Redis,第一篇之——string(字元串)

繼續閱讀