[Redis] 淺談Redis內的幾種資料型別

3d設計屍發表於2020-08-31

面試被洗臉,發現對Redis的瞭解不夠深,只好來惡補一下,這篇只會先簡單介紹各個資料型別,command的部分會在之後的文章介紹


Key

在Redis內的Key是二進位安全的,任何可以轉換成binary的都可以做為key,例如純字串“abc” 又或是JPG檔


針對Key有幾個建議的規則


不要太長,例如用1024字元作為一個key

不要太短,較短的key雖然可以節省一些空間,但是缺乏可讀性反而會造成其他問題,例如使用a1 a2 a3 作為key

使用相同pattern的命名模式

key最大的大小為512MB

1. String

在redis中最簡單的型別,就是儲存一個字串,同樣的值的大小限制為512MB,儲存結果會是key-value 一對一的對應


2. List

基本上就是值為String的Linked lists,沒有順序,允許重複,在操作上可以選擇從前面取得資料或是從後面取得資料


3. Set

沒有排序的string集合,且不允許重複,內部是透過Hash Table實現,故新增、刪除、查詢的複雜度都是O(1)


4. Sorted Set

與set相似,但再新增時多了一個“score” 需要指定,sorted set 會依據每一筆資料的score來做排序


5. Hash

Hash的使用有點像是在操作物件,新增一筆資料(hash),並且可以為他加入多個屬性(property)


6. BitMap

對string的另一種操作,set時有兩個引數,第一個為bit number,類似於在二進位中指定的2的平方數,第二個引數則是值,BitMap的優點在可以有較小的儲存空間


以下為例,command執行後儲存的內容分別為


> 1

> 11

> 011

> 1011

最後一個command “bitcount” 可以回傳值為1的數量,故這邊會得到3


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69979777/viewspace-2716087/,如需轉載,請註明出處,否則將追究法律責任。

相關文章