redis 支援哪些資料型別
最近在面試的過程中,發現有很多同學都說用過Redis,但是問Redis支援哪幾種資料型別,又不是很能回答上來,特記錄如下:
Redis支援五種資料型別:string(字串),hash(雜湊),list(列表),set(集合)及zset(sorted set:有序集合)。
-
字串--String
string 是 redis 最簡單最基本的資料結構,Redis所有的資料結構都是以唯一的key作為名稱,然後通過唯一的key值來獲取對應的value資料。
不同型別的資料結構的差異就在於value的結構不一樣。
string 型別是二進位制安全的。意思是 redis 的 string 可以包含任何資料。比如jpg圖片或者序列化的物件。
字串結構的使用非常廣泛,一個常見的用途就是快取使用者資訊。
我們將使用者資訊結構體使用JSON序列化成字串,然後將序列化後的字串,然後將序列化後的字串塞進Redis來快取。
同樣的,獲取使用者資訊會經過一次反序列化過程。 -
列表--List
Redis的列表相當於Java中的LinkedList,注意它是連結串列而不是陣列。這意味著list的插入和刪除操作會非常快,時間複雜度為O(1),但是索引定位很慢,時間複雜度為O(name),這點讓人非常意外。
當列表彈出最後一個元素之後,該資料結構自動被刪除,記憶體被回收。列表可以在左右兩邊進行插入和刪除操作。
-
雜湊--Hash
Redis中的字典,相當於Java中的HashMap,是無序字典,內部實現結構上同Java的HashMap是一致的,同樣的陣列+連結串列的二維結構。
Redis hash 是一個string型別的field和value的對映表,hash特別適合儲存物件。
Hash結構儲存使用者資訊,不同於字串一次性需要全部序列化整個物件,hash可以對使用者結構中的每個欄位單獨儲存。
這樣我們需要獲取使用者資訊時,可以進行部分獲取。如果以字串形式儲存使用者資訊的話,就只能一次性全部讀取,這樣就會比較浪費流量。 -
集合--Set
Redis的集合相當於Java中的HashSet,它內部的鍵值對是無序的唯一的。它的內部實現相當於一個特殊的字典,字典中所有的value都是一個值null。
當集合中最後一個元素移除之後,資料結構自動刪除,記憶體被回收。
set 結構可以用來儲存活動中獎的使用者 ID,因為有去重功能,可以保證同一個使用者不會中獎兩次。 -
有序集合--Sorted Set
zset可能是Redis提供的最有特色的資料結構,它也是在面試中面試官最愛問的資料結構。
它類似於Java中的SortedSet和HashMap的結合體,一方面它是一個set,保證了內部value的唯一性,
另一方面它可以給每個value賦予一個score,代表value的排序權重。
zset可以用來存粉絲列表,value值是粉絲的使用者ID,score是關注事件。我們可以對粉絲列表按照關注時間進行排序。
zset也可以用來儲存學生成績,value是學生ID,score是學生考試成績。我們可以對成績按分數進行排序就可以得到他的名字。
相關文章
- Python支援哪些資料型別Python資料型別
- BlueHost主機支援哪些資料庫型別?資料庫型別
- ETLCloud支援的資料處理型別包括哪些?Cloud型別
- 資料型別: 資料型別有哪些?資料型別
- Redis資料型別Redis資料型別
- 報表工具都支援哪些資料來源型別?型別
- Redis基本資料型別Redis資料型別
- Java 支援的資料型別與 MySQL 支援的資料型別對比Java資料型別MySql
- Redis 資料型別及操作Redis資料型別
- Redis資料型別基本操作Redis資料型別
- 【Redis】資料型別介紹Redis資料型別
- 【Redis】Redis的資料型別速查(5種基礎型別,5特殊型別)Redis資料型別
- JavaScript有哪些資料型別?JavaScript資料型別
- Redis 筆記(核心資料型別)Redis筆記資料型別
- Redis的資料型別——探究竟Redis資料型別
- redis-資料型別及命令Redis資料型別
- 深入理解redis資料型別Redis資料型別
- 07 redis-資料型別 setRedis資料型別
- Redis 三種特殊資料型別Redis資料型別
- Redis Hashes 資料型別簡述Redis資料型別
- 資料型別是什麼?Python的資料型別又有哪些?資料型別Python
- JavaScript基本資料型別有哪些JavaScript資料型別
- 資料分析工具有哪些型別型別
- Java有哪些基本資料型別?Java資料型別
- Redis學習筆記(二)——Redis資料型別Redis筆記資料型別
- redis學習筆記2: Redis資料型別Redis筆記資料型別
- 《閒扯Redis九》Redis五種資料型別之Set型Redis資料型別
- 《閒扯Redis六》Redis五種資料型別之Hash型Redis資料型別
- Mysql支援的資料型別(總結)MySql資料型別
- Golang 庫 Redis 對 data 型別的支援GolangRedis型別
- Redis基本資料型別命令彙總Redis資料型別
- 2、Redis的資料型別-stringRedis資料型別
- redis-22.高階資料型別Redis資料型別
- redis各資料型別應用概述Redis資料型別
- redis-4.資料儲存型別Redis型別
- Redis 高階資料型別重溫Redis資料型別
- Redis 基礎資料型別重溫Redis資料型別
- 大資料分析的型別有哪些大資料型別