Redis的資料型別及應用場景

2021-10-22 01:36:54 字數 1632 閱讀 5671

redis支援五種資料型別:string(字串),hash(雜湊),list(列表),set(集合)及zset(sorted set:有序集合)

1. string 這個型別,乙個 key 對應乙個 value;

string 型別是二進位制安全的。意思是 redis 的 string 可以包含任何資料。比如jpg或者序列化的物件;

string 型別是 redis 最基本的資料型別,string 型別的值最大能儲存 512mb;

最常規的便是set/get操作,一般做一些複雜的計數功能的快取。2. hash 是乙個 string 型別的 field 和 value 的對映表;

這裡value存放的是結構化的物件,比較方便的就是操作其中的某個字段。

每個 hash 可以儲存 232 -1 鍵值對(40多億)

在做單點登入的時候,就是用這種資料結構儲存使用者資訊,以cookieid作為key,設定30分鐘為快取過期時間,能很好的模擬出類似session 的效果。

3. list 使用list的資料結構;

乙個簡單的字串列表,按照插入順序排序

列表最多可儲存 232 - 1 元素 (4294967295, 每個列表可儲存40多億)

可以做簡單的訊息佇列的功能。另外還有乙個就是,做基於redis的分頁功能,效能極佳,使用者體驗好。

4. set 因為set堆放的是一堆不重複值的集合;

是通過雜湊表實現的,所以新增,刪除,查詢的複雜度都是 o(1)

集合中最大的成員數為 232 - 1(4294967295, 每個集合可儲存40多億個成員)

所以可以做全域性去重的功能

為什麼不用程式語言自帶的set進行去重?

因為我們的系統一般都是集群部署,使用程式語言本身自帶的set,比較麻煩,難道為了乙個做乙個全域性去重,再起乙個公共服務,太麻煩了。

另外,就是利用交集、並集、差集等操作,可以計算共同喜好,全部的喜好,自己獨有的喜好等功能。

5. sorted set

sorted set多了乙個權重引數score,集合中的元素能夠按score進行排列

成員是唯一的,但score卻可以重複

可以做排行榜應用,取top n操作。另外,參照另一篇《分布式之延時任務方案解析》,該文指出了sorted set可以用來做延時任務。最後乙個應用就是可以做範圍查詢

【來思go】,let's go!

Redis資料型別及應用場景

1 redis 是一種鍵值 key value 資料庫。相對於關係型資料庫 比如 mysql redis 也被叫作非關係型資料庫。除此之外,redis 主要是作為記憶體資料庫來使用,也就是說,資料是儲存在記憶體中的。儘管它經常被用作記憶體資料庫,但是,它也支援將資料持久化到硬碟中。2 redis的每...

Redis 資料型別及應用場景

通常我們都把資料存到關係型資料庫中,但為了提公升應用的效能,我們應該把訪頻率高且不會經常變動的資料快取到記憶體中。redis 沒有像 mysql 這類關係型資料庫那樣強大的查詢功能,需要考慮如何把關係型資料庫中的資料,合理的對應到快取的 key value 資料結構中。分段設計法 使用冒號把 key...

redis的資料型別及應用場景

redis主要有以下資料型別 string hash list set sorted set。string 這是最基本的型別,就是最普通的set及get,做簡單的key value快取。hash 這個是類似於map的一種結構,一般就是可以將結構化的資料,比如乙個物件 前提是這個物件沒有巢狀其他物件 ...