您好,登錄后才能下訂單哦!
這篇文章主要介紹“Redis常見應用場景有哪些”,在日常操作中,相信很多人在Redis常見應用場景有哪些問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”Redis常見應用場景有哪些”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
一、String 場景
二、Hash 場景
三、List 場景
四、Set 場景
五、zSet 場景
計數功能:
例如掘金文章點擊數量,閱讀數量。
集群環境下的session共享。
各種 商城購物車 (淘寶,京東。。)
設計思路:
1.購物車綁定了 userId
。
2.商品id作為feild,商品數量作為value。
模擬過程:
// 初始化購物車數據
hmset userId:1 prod:1 1 prod:2 3 prod:3 4
// 增加商品 prod:1 購買數量為2件時
hincrby userId:1 prod:1 1
// 減少商品 prod:2 數量為1件時
hincrby userId:1 prod:2 -2
// 刪除商品 prod:1 時
hdel userId:1 prod:1
// 統計商品數
hlen userId:1
微信公眾號訂閱消息
設計思路:
公眾號發布消息時,向訂閱本公眾號的用戶(mess:1)推送(將訂閱消息id通過lpush放入用戶的list中),模擬過程。
模擬過程:
// 推送消息
lpush mess:1 999
lpush mess:1 1000
lpush mess:1 1010
// 查看消息,返回結果1010 1000 999
lrange mess:1 0 -1
限時抽獎活動:例如微信有個活動,活動id為2,如何基于Redis設計實現。
設計思路:
用戶點擊立即參與后,將用戶id保存到活動id的集合中,利用Set集合的元素唯一性可查看參加用戶、參加用戶數量等等。
模擬過程:
// 用戶user:1 user:2 user:3參加抽獎活動act:888
sadd act:888 user:1 user:2 user:3
// 模擬一次性隨機抽獎1名
srandmember act:888
// 模擬兩次抽獎,兩次抽獎不重復,使用spop命令,抽取中的用戶會從set中移除
spop act:888
spop act:888
好友關系:共同關注,我關注的人也關注了他,我可能認識的人
注: 如果數據量大的情況下使用大數據分析
設計思路:兩個集合取交集
模擬過程:
// 三個用戶關注的人
sadd user:1 zhangsan lisi wangwu
sadd user:2 zhangsan liliu wanger wangwu
sadd user:3 list wangwu liliu
// user:1和user:2共同關注的人,取交集,返回zhangsan wangwu
sinter user:1 user:2
各種榜單:
例如百度新聞排名
設計思路:
將新聞id作為member,點擊次數設置為score,每點擊一次score+1,當然,為了每日榜單,member在設計時可以加上后綴用于日期區分,例如news:20191216、news:20191217 。
模擬過程:
// 增加熱點新聞
zadd topic:20191216 100 new:1 200 new:2 150 new:3 500 new:4
// new:1點擊了120次,點擊數變為220
zincrby topic:20191216 120 new:1
// 查看今日排行前3名,返回 new:4 500 new:1 220 new:2 200
zrevrange topic:20191216 0 2 withscores
zadd topic:20191217 110 new:1 200 new:2 150 new:3 100 new:4
zadd topic:20191218 110 new:5 200 new:2 150 new:6 100 new:7
// 合并三日的數據
zunionstore topic:3day 3 topic:20191216 topic:20191217 topic:201912168
// 查看近三日排行榜前三名,返回new:4 600 new:2 600 new:1 330
zrevrange topic:3day 0 2 withscores
到此,關于“Redis常見應用場景有哪些”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。