首頁 >資料庫 >Redis >redis用在什麼地方

redis用在什麼地方

藏色散人
藏色散人原創
2019-06-19 11:10:212520瀏覽

redis用在什麼地方

redis用在什麼地方?

redis應用程式場景

●令牌(Token)產生

● 簡訊驗證碼

● 排行榜

● 訊息佇列

Redis 中list的資料結構實作是雙向鍊錶,所以可以非常方便的應用於訊息佇列(生產者/ 消費者模式)。訊息的生產者只需要透過lpush將訊息放入 list,消費者便可以透過rpop取出該訊息,並且可以保證訊息的有序性。如果需要實作帶有優先權的訊息佇列也可以選擇sorted set。而pub/sub功能也可以用作發布者 / 訂閱者模型的訊息。無論使用何種方式,由於 Redis 擁有持久化功能,也不需要擔心伺服器故障導致訊息遺失的情況。 (推薦:《Redis影片教學》)

如果對於資料一致性要求高的話還是用RocketMQ等專業系統。

由於redis把資料加入佇列是傳回新增元素在佇列的第幾位,所以可以做判斷使用者是第幾個存取這種業務

佇列不僅可以把並發請求變成串行,也可以做佇列或堆疊使用

分散式鎖定

#驗證前端的重複請求,可以透過redis進行過濾

#秒殺系統,基於redis是單執行緒特徵,防止出現資料庫「爆破」

全域增量ID生成,類似「秒殺」

計數器

諸如統計點擊數等應用程式。由於單線程,可以避免並發問題,保證不會出錯,而且100%毫秒級效能!

計數功能應該是最適合 Redis 的使用場景之一了,因為它高頻率讀寫的特徵可以完全發揮 Redis 作為記憶體資料庫的高效能。在 Redis 的資料結構中,string、hash和sorted set都提供了incr方法用於原子性的自增操作。

範例:

如果應用程式需要顯示每天的註冊用戶數,便可以使用string作為計數器,設定一個名為REGISTERED_COUNT_TODAY的key,並在初始化時給它設定一個到凌晨0 點的過期時間,每當用戶註冊成功後便使用incr命令使該key 增長1,同時當每天凌晨0 點後,這個計數器都會因為key 過期使值清零。

每個微博都有點讚數、評論數、轉發數和瀏覽數四條屬性,這時用hash進行計數會更好,將該計數器的key 設為weibo:weibo_id,hash的field 為like_number、comment_number、forward_number和view_number,對應作業後透過hincrby使hash 中的field 自增。

如果套用有一個發文排行榜的功能,便選擇sorted set吧,將集合的 key 設為POST_RANK。當用戶發佈後,使用zincrby將該用戶 id 的 score 成長 1。 sorted set會重新進行排序,使用者所在排行榜的位置也會得到即時的更新。

以上是redis用在什麼地方的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn