Redis五大資料型別使用場景

2021-10-03 08:54:37 字數 2083 閱讀 8696

共享session:出於負載均衡的考慮,分布式服務會將使用者資訊的訪問均衡到不同伺服器上,

使用者重新整理一次訪問可能會需要重新登入,為避免這個問題可以用redis將使用者session集中管理,

在這種模式下只要保證redis的高可用和擴充套件性的,每次獲取使用者更新或查詢登入資訊

都直接從redis中集中獲取。

限速:處於安全考慮,每次進行登入時讓使用者輸入手機驗證碼,為了簡訊介面不被頻繁訪問,

會限制使用者每分鐘獲取驗證碼的頻率。

雜湊結構相對於字串序列化快取資訊更加直觀,並且在更新操作上更加便捷。

所以常常用於**使用者資訊**等管理,但是雜湊型別和關係型資料庫有所不同,雜湊型別是稀疏的,

而關係型資料庫是完全結構化的,關係型資料庫可以做複雜的關係查詢,而redis去模擬關係型複雜查詢

開發困難,維護成本高。

列表型別是用來儲存多個有序的字串,列表中的每個字串成為元素(element),乙個列表最多可以儲存

2的32次方-1個元素,在redis中,可以隊列表兩端插入(pubsh)和彈出(pop),還可以獲取指定範圍的元素

列表、獲取指定索引下表的元素等,列表是一種比較靈活的資料結構,它可以充當棧和佇列的角色,

在實際開發中有很多應用場景。

優點:1.列表的元素是有序的,這就意味著可以通過索引下標獲取某個或某個範圍內的元素列表。

2.列表內的元素是可以重複的。

訊息佇列: redis的lpush+brpop命令組合即可實現阻塞佇列,生產者客戶端是用lupsh從列表左側插入元素,

多個消費者客戶端使用brpop命令阻塞時的「搶」列表尾部的元素,多個客戶端保證了消費的負載均衡

和高可用性

訊息佇列模型↑

同時支援按照索引範圍獲取元素。

集合型別也是用來儲存多個字串的元素,但和列表不同的是集合中不允許有重複的元素,並且集合中的元素是

無序的,不能通過索引下標獲取元素,redis除了支援集合內的增刪改查,同時還支援多個集合取交集、並集、

差集,並合理的使用好集合型別,能在實際開發中解決很多實際問題。

標籤(tag):集合型別比較典型的使用場景,如乙個使用者對娛樂、體育比較感興趣,另乙個可能對新聞感興

趣,這些興趣就是標籤,有了這些資料就可以得到同一標籤的人,以及使用者的共同愛好的標籤,

這些資料對於使用者體驗以及曾強使用者粘度比較重要。

(使用者和標籤的關係維護應該放在乙個事物內執行,防止部分命令失敗造成資料不一致)

sadd=tagging(標籤)

spop/srandmember=random item(生成隨機數,比如**)

sadd+sinter=social graph(社交需求)

有序集合和集合有著必然的聯絡,他保留了集合不能有重複成員的特性,但不同得是,有序集合中的元素是可以

排序的,但是它和列表的使用索引下標作為排序依據不同的是,它給每個元素設定乙個分數,作為排序的依據。

(有序集合中的元素不可以重複,但是csore可以重複,就和乙個班裡的同學學號不能重複,但考試成績可以相

同)。

Redis五大資料型別詳解及使用場景

redis支援五種資料型別 string 字串 hash 雜湊 list 列表 set 集合 及zset sorted set 有序集合 string 是 redis 最基本的型別,你可以理解成與 memcached 一模一樣的型別,乙個 key 對應乙個 value string 型別是二進位制安...

Redis 五大資料型別使用

redis支援字串 string 雜湊 hash 列表 list 無序集合 set 有序集合 zset 等資料結構儲存。redis命令不區分大小寫,但key嚴格區分大小寫 一 string資料型別 ttl命令是返回key的剩餘過期時間,單位為秒 mset和mget批量處理,能夠提高操作效率。但red...

redis五大資料型別

redis支援五種資料型別 string 字串 hash 雜湊 list 列表 set 集合 及zset sorted set 有序集合 127.0 0.1 6379 set name yzl ok127.0 0.1 6379 get name yzl 127.0 0.1 6379 hmset my...