您好,登錄后才能下訂單哦!
這篇文章主要介紹了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應用場景有哪些內容對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,遇到問題就找億速云,詳細的解決方法等著你來學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。