您好,登錄后才能下訂單哦!
這篇文章主要介紹了redis應(yīng)用場(chǎng)景有哪些,具有一定借鑒價(jià)值,需要的朋友可以參考下。希望大家閱讀完這篇文章后大有收獲。下面讓小編帶著大家一起了解一下。
redis用在什么地方?
redis應(yīng)用場(chǎng)景
● 令牌(Token)生成
● 排行榜
● 消息隊(duì)列
Redis 中l(wèi)ist的數(shù)據(jù)結(jié)構(gòu)實(shí)現(xiàn)是雙向鏈表,所以可以非常便捷的應(yīng)用于消息隊(duì)列(生產(chǎn)者 / 消費(fèi)者模型)。消息的生產(chǎn)者只需要通過lpush將消息放入 list,消費(fèi)者便可以通過rpop取出該消息,并且可以保證消息的有序性。如果需要實(shí)現(xiàn)帶有優(yōu)先級(jí)的消息隊(duì)列也可以選擇sorted set。而pub/sub功能也可以用作發(fā)布者 / 訂閱者模型的消息。無論使用何種方式,由于 Redis 擁有持久化功能,也不需要擔(dān)心由于服務(wù)器故障導(dǎo)致消息丟失的情況。(推薦:《Redis視頻教程》)
如果對(duì)于數(shù)據(jù)一致性要求高的話還是用RocketMQ等專業(yè)系統(tǒng)。
由于redis把數(shù)據(jù)添加到隊(duì)列是返回添加元素在隊(duì)列的第幾位,所以可以做判斷用戶是第幾個(gè)訪問這種業(yè)務(wù)
隊(duì)列不僅可以把并發(fā)請(qǐng)求變成串行,并且還可以做隊(duì)列或者棧使用
分布式鎖
驗(yàn)證前端的重復(fù)請(qǐng)求,可以通過redis進(jìn)行過濾
秒殺系統(tǒng),基于redis是單線程特征,防止出現(xiàn)數(shù)據(jù)庫(kù)“爆破”
全局增量ID生成,類似“秒殺”
計(jì)數(shù)器
諸如統(tǒng)計(jì)點(diǎn)擊數(shù)等應(yīng)用。由于單線程,可以避免并發(fā)問題,保證不會(huì)出錯(cuò),而且100%毫秒級(jí)性能!
計(jì)數(shù)功能應(yīng)該是最適合 Redis 的使用場(chǎng)景之一了,因?yàn)樗哳l率讀寫的特征可以完全發(fā)揮 Redis 作為內(nèi)存數(shù)據(jù)庫(kù)的高效。在 Redis 的數(shù)據(jù)結(jié)構(gòu)中,string、hash和sorted set都提供了incr方法用于原子性的自增操作。
例子:
如果應(yīng)用需要顯示每天的注冊(cè)用戶數(shù),便可以使用string作為計(jì)數(shù)器,設(shè)定一個(gè)名為REGISTERED_COUNT_TODAY的 key,并在初始化時(shí)給它設(shè)置一個(gè)到凌晨 0 點(diǎn)的過期時(shí)間,每當(dāng)用戶注冊(cè)成功后便使用incr命令使該 key 增長(zhǎng) 1,同時(shí)當(dāng)每天凌晨 0 點(diǎn)后,這個(gè)計(jì)數(shù)器都會(huì)因?yàn)?key 過期使值清零。
每條微博都有點(diǎn)贊數(shù)、評(píng)論數(shù)、轉(zhuǎn)發(fā)數(shù)和瀏覽數(shù)四條屬性,這時(shí)用hash進(jìn)行計(jì)數(shù)會(huì)更好,將該計(jì)數(shù)器的 key 設(shè)為weibo:weibo_id,hash的 field 為like_number、comment_number、forward_number和view_number,在對(duì)應(yīng)操作后通過hincrby使hash 中的 field 自增。
如果應(yīng)用有一個(gè)發(fā)帖排行榜的功能,便選擇sorted set吧,將集合的 key 設(shè)為POST_RANK。當(dāng)用戶發(fā)帖后,使用zincrby將該用戶 id 的 score 增長(zhǎng) 1。sorted set會(huì)重新進(jìn)行排序,用戶所在排行榜的位置也就會(huì)得到實(shí)時(shí)的更新。
感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享redis應(yīng)用場(chǎng)景有哪些內(nèi)容對(duì)大家有幫助,同時(shí)也希望大家多多支持億速云,關(guān)注億速云行業(yè)資訊頻道,遇到問題就找億速云,詳細(xì)的解決方法等著你來學(xué)習(xí)!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。