Redis實戰解讀-初識Redis&Redis基本資料型別

程式設計舊事發表於2023-05-15

Redis實戰解讀

一.初識Redis

1.什麼是Redis

Redis是一個速度非常快的非關係型資料庫(non-relational database),它可以儲存鍵(key)與五種不同型別的值的對映(mapping),可以將儲存在記憶體的鍵值對資料持久化到磁碟,可以使用複製特性來擴充套件讀效能,也可以採用客戶端分片來擴充套件寫效能。--《Redis實戰》

2.Redis與其他資料庫的對比

​ 與memcached對比:Redis能夠儲存包括字串型別的共計五種資料型別的鍵值,而memcached只能儲存普通的字串型別的鍵值。

二.Redis中的資料結構

Redis支援String(字串),List(列表),Set(集合),Hash(雜湊),Zset(有序集合)共計五種資料型別以儲存鍵值,接下來,我們將分別去討論這五種資料型別

(我們將在Linux系統進行演示,如何在Linux系統上安裝並執行Redis,請參照https://redis.io/docs/getting-started/installation/install-redis-on-linux/)

1.String(字串)

字串的內容可以是字串,整數或者是浮點數,因此,字串可以進行字串相關的操作,以及數值型的自加自減操作。

相當於其他資料型別而言,字串型別的內容較為簡單,這裡以程式碼過之。

image-20230512162318677

相關方法說明:

向資料庫中新增一個key-value: set key value

獲取資料庫中指定key的value: get key

刪除資料庫中指定的key: del key

2.List(列表)

Redis中的連結串列結構能夠順序儲存多個字串,其中,連結串列中的每一個節點均代表著一個字串

程式碼演示:

image-20230512163534988image-20230512163836833

相關方法說明:

rpush key value:從左側向key對應的連結串列插入一個value元素,並返回新增的元素的value值

lpush key value:從右側向key對應的連結串列插入一個value元素,並返回新增的元素的value值

rpop key:從左側刪除key對應的連結串列的一個元素,並返回刪除的元素的value值

lpop key:從右側刪除key對應的連結串列的一個元素,並返回刪除的元素的value值

lindex key index :獲取列表上指定(從右側數)index處的元素的value值

lrange key startIndex endIndex:獲取從startIndex索引到endIndex索引之間(即[startIndex,endIndex]區間上的元素)的元素的元素值

注意:當startIndex = 0,endIndex = -1,則表示獲取整個連結串列內的所有元素。

​ index是從0開始計數。

3.Set(集合)

與List資料型別不同的是,Set不能儲存多個相同的字串值,也就是說,其儲存的元素值具有唯一性,此外,其儲存順序也是不定的,即元素儲存的順序與插入順序沒有關係。

image-20230512165802415 image-20230512165853630image-20230512170220291

相關方法說明:

sadd key value : 向指定key的集合中新增一個值為value的元素,成功返回1,失敗返回0

srem key value : 向指定key的集合中刪除一個值為value的元素,成功返回1,失敗返回0

smembers key : 獲取指定key的集合中的全部元素

sismember key value :確定指定元素value是否存在於key的集合中,存在則返回1,不存在則返回0

4.Hash(雜湊)

Redis中的雜湊用於儲存多個鍵值對之間的對映,類似於Java中的Map資料型別。

image-20230513161158538image-20230513161213401image-20230513161551708

相關方法說明:

hset key sub_key sub_value : 向指定key的集合中新增 sub_key 與sub_value的鍵值對映,插入成功返回1,失敗返回0

hget key sub_key : 獲取指定key的集合中的sub_key對應的值,存在sub_key的關係對映,則返回相對應的值,不存在返回nil

hdel key sub_key : 刪除指定key的集合中的sub_key的鍵值對映

hgetall key : 獲取指定key集合中的全部鍵值對映,注意:結果是以key1,value1,key2,value2,.......交替展示

5.Zset(有序集合)

與Set一樣,該種資料型別也是用於儲存唯一性的鍵值的,與前者不同的是,後者在鍵值的基礎上還新增了一個與之繫結的分數值(score),因此你可以依據score值去獲取相應的value值,並且也可以查詢指定score範圍內的相對應的key值。

image-20230513162755613image-20230513162810089

相關方法說明:

zadd key score item : 向指定key的有序集合中新增一個分數為score 的item元素,插入成功返回1,失敗返回0

zrem key item : 刪除指定key的有序集合中的指定item元素,刪除成功返回1,失敗返回0

zrange key startIndex endIndex [withscores] : 獲取指定key的有序集合中的索引介於起始索引startIndex與結束索引endIndex之間的元素,新增withscores則返回的結果中為item與score的交替展示

zrangebyscore key minScore maxScore [withscores]: 獲取指定key的有序集合中的分數值介於minScore與maxScore之間的元素值,新增withscores則返回的結果中為item與score的交替展示

相關文章