摘要:摘要本文主要介紹視頻直播間系統(tǒng),以及如何使用阿里云混合存儲(chǔ)實(shí)例方便快捷的構(gòu)建大數(shù)據(jù)量,低延遲的視頻直播間服務(wù)。開(kāi)播啦加油請(qǐng)假抱歉,今天有事鴿一天阿里云優(yōu)勢(shì)阿里云主從版提供萬(wàn)的,讀寫分離版本提供萬(wàn)最大力度支持系統(tǒng)的高并發(fā)需求。
摘要: 本文主要介紹視頻直播間系統(tǒng),以及如何使用阿里云Redis混合存儲(chǔ)實(shí)例方便快捷的構(gòu)建大數(shù)據(jù)量,低延遲的視頻直播間服務(wù)。
背景
視頻直播間作為直播系統(tǒng)對(duì)外的表現(xiàn)形式,在整個(gè)系統(tǒng)中處于核心地位。通常除了視頻直播窗口外,直播間還包含在線用戶,禮物,評(píng)論,點(diǎn)贊,排行榜等信息。直播間消息,時(shí)效性高,互動(dòng)性強(qiáng),對(duì)系統(tǒng)時(shí)延有著非常高的要求,非常適合使用Redis等緩存服務(wù)來(lái)處理。
直播信息
實(shí)時(shí)排行信息
實(shí)時(shí)排行信息包含直播間在線用戶列表,各種禮物排行榜,彈幕消息(可以理解為按消息維度的消息排行榜)等信息,適合使用Redis中的SortedSet結(jié)構(gòu)進(jìn)行存儲(chǔ)。
例如,以u(píng)nix timestamp+毫秒數(shù)為分值,記錄user55的直播間增加的5條彈幕
redis> ZADD user55:_danmu 1523959031601166 message111111111111 (integer) 1 11.160.24.14:3003> ZADD user55:_danmu 1523959031601266 message222222222222 (integer) 1 11.160.24.14:3003> ZADD user55:_danmu 1523959088894232 message33333 (integer) 1 11.160.24.14:3003> ZADD user55:_danmu 1523959090390160 message444444 (integer) 1 11.160.24.14:3003> ZADD user55:_danmu 1523959092951218 message5555 (integer) 1
返回最新的3條彈幕信息:
redis> ZREVRANGEBYSCORE user55:_danmu +inf -inf LIMIT 0 3 1) "message5555" 2) "message444444" 3) "message33333"
返回指定時(shí)間段內(nèi)的3條彈幕信息:
redis> ZREVRANGEBYSCORE user55:_danmu 1523959088894232 -inf LIMIT 0 3 1) "message33333" 2) "message222222222222" 3) "message111111111111"
計(jì)數(shù)類信息
計(jì)數(shù)類信息以用戶維度為例,有未讀消息數(shù),關(guān)注數(shù),粉絲數(shù),經(jīng)驗(yàn)值等等。這類消息適合以Redis中的Hash結(jié)構(gòu)進(jìn)行存儲(chǔ)。
redis> HSET user:55 follower 5 (integer) 1 redis> HINCRBY user:55 follower 1 //關(guān)注數(shù)+1 (integer) 6 redis> HGETALL user:55 1) "follow" 2) "6"
時(shí)間線信息
時(shí)間線信息是以時(shí)間為維度的信息列表,典型的比如主播動(dòng)態(tài),新帖。這類信息排序方式是固定的時(shí)間順序,可以考慮使用List或者SortedSet來(lái)存儲(chǔ)。
redis> LPUSH user:55_recent_activitiy "{datetime:201804112010,type:publish,title:開(kāi)播啦,content:加油}" (integer) 1 redis> LPUSH user:55_recent_activitiy "{datetime:201804131910,type:publish,title:請(qǐng)假,content:抱歉,今天有事鴿一天}" (integer) 2 redis> LRANGE user:55_recent_activitiy 0 10 1) "{datetime:201804131910,type:publish,title:xe8xafxb7xe5x81x87",content:xe6x8axb1xe6xadx89xefxbcx8cxe4xbbx8axe5xa4xa9xe6x9cx89xe4xbax8bxe9xb8xbdxe4xb8x80xe5xa4xa9}" 2) "{datetime:201804112010,type:publish,title:xe5xbcx80xe6x92xadxe5x95xa6,content:xe5x8axa0xe6xb2xb9}"
阿里云Redis優(yōu)勢(shì)
阿里云主從版Redis提供10萬(wàn)的QPS,讀寫分離版本Redis提供60萬(wàn)QPS最大力度支持系統(tǒng)的高并發(fā)需求。
資深專家團(tuán)隊(duì)深度開(kāi)發(fā)維護(hù)Redis源碼,經(jīng)千萬(wàn)服務(wù)考驗(yàn),超高穩(wěn)定性和安全性。
雙機(jī)熱備架構(gòu),故障秒級(jí)自動(dòng)遷移,全力保障訂單數(shù)據(jù)。
一鍵創(chuàng)建,一鍵擴(kuò)容,全方位智能監(jiān)控運(yùn)維平臺(tái)。請(qǐng)求量,活躍度一眼就能看清。
專業(yè)服務(wù)團(tuán)隊(duì),實(shí)時(shí)監(jiān)控可用性,7 x 24小時(shí)在線咨詢。
使用Redis混合存儲(chǔ)實(shí)例存儲(chǔ)信息
阿里云Redis混合存儲(chǔ)產(chǎn)品完全兼容Redis協(xié)議,用戶無(wú)需修改任何代碼,以低成本的NVMe盤存儲(chǔ)不常訪問(wèn)的直播間數(shù)據(jù),可以突破內(nèi)存容量限制,單實(shí)例最高可支持TB級(jí)別的數(shù)據(jù)容量。
當(dāng)Redis混合存儲(chǔ)實(shí)例內(nèi)存可以存儲(chǔ)所有直播間數(shù)據(jù)時(shí),訪問(wèn)所有直播間數(shù)據(jù)均可享受極致性能。
當(dāng)直播間數(shù)據(jù)越來(lái)越多,快要超過(guò)實(shí)例內(nèi)存限制時(shí),Redis混合存儲(chǔ)實(shí)例會(huì)自動(dòng)從訪問(wèn)頻率,訪問(wèn)時(shí)間等維度選擇冷門的直播間數(shù)據(jù),后臺(tái)將其Value存儲(chǔ)到磁盤上;
熱門直播間數(shù)據(jù)仍然保留在內(nèi)存中,性能不受任何影響;
當(dāng)訪問(wèn)到磁盤上的冷門直播間數(shù)據(jù)時(shí),數(shù)據(jù)會(huì)自動(dòng)從后臺(tái)加載到內(nèi)存中,所有IO操作都經(jīng)過(guò)阿里云自研的新一代存儲(chǔ)引擎Fusion Engine極致優(yōu)化,4K數(shù)據(jù)加載速度在20us左右;
通過(guò)將部分冷數(shù)據(jù)存儲(chǔ)到磁盤的方式,有效降低了用戶成本并突破內(nèi)存對(duì)單實(shí)例容量的限制。
原文鏈接
閱讀更多干貨好文,請(qǐng)關(guān)注掃描以下二維碼:
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/17728.html
摘要:所以查閱官方文檔以及他人造好的輪子,總結(jié)了一些面試和學(xué)習(xí)中你必須掌握的問(wèn)題。在微博應(yīng)用中,可以將一個(gè)用戶所有的關(guān)注人存在一個(gè)集合中,將其所有粉絲存在一個(gè)集合。 昨天寫了一篇自己搭建redis集群并在自己項(xiàng)目中使用的文章,今天早上看別人寫的面經(jīng)發(fā)現(xiàn)redis在面試中還是比較常問(wèn)的(筆主主Java方向)。所以查閱官方文檔以及他人造好的輪子,總結(jié)了一些redis面試和學(xué)習(xí)中你必須掌握的問(wèn)題。...
閱讀 3253·2021-11-11 11:00
閱讀 2573·2019-08-29 11:23
閱讀 1456·2019-08-29 10:58
閱讀 2333·2019-08-29 10:58
閱讀 2960·2019-08-23 18:26
閱讀 2516·2019-08-23 18:18
閱讀 2048·2019-08-23 16:53
閱讀 3422·2019-08-23 13:13