Redis的常用場(chǎng)景有哪些?
1、緩存
緩存現(xiàn)在幾乎是所有中大型網(wǎng)站都在用的必殺技,合理的利用緩存不僅能夠提升網(wǎng)站訪問速度,還能大大降低數(shù)據(jù)庫(kù)的壓力。Redis提供了鍵過期功能,也提供了靈活的鍵淘汰策略,所以,現(xiàn)在Redis用在緩存的場(chǎng)合非常多。
2、排行榜
很多網(wǎng)站都有排行榜應(yīng)用的,如京東的月度銷量榜單、商品按時(shí)間的上新排行榜等。Redis提供的有序集合數(shù)據(jù)類構(gòu)能實(shí)現(xiàn)各種復(fù)雜的排行榜應(yīng)用。
3、計(jì)數(shù)器
什么是計(jì)數(shù)器,如電商網(wǎng)站商品的瀏覽量、視頻網(wǎng)站視頻的播放數(shù)等。為了保證數(shù)據(jù)實(shí)時(shí)效,每次瀏覽都得給+1,并發(fā)量高時(shí)如果每次都請(qǐng)求數(shù)據(jù)庫(kù)操作無(wú)疑是種挑戰(zhàn)和壓力。Redis提供的incr命令來實(shí)現(xiàn)計(jì)數(shù)器功能,內(nèi)存操作,性能非常好,非常適用于這些計(jì)數(shù)場(chǎng)景。
4、分布式會(huì)話
集群模式下,在應(yīng)用不多的情況下一般使用容器自帶的session復(fù)制功能就能滿足,當(dāng)應(yīng)用增多相對(duì)復(fù)雜的系統(tǒng)中,一般都會(huì)搭建以Redis等內(nèi)存數(shù)據(jù)庫(kù)為中心的session服務(wù),session不再由容器管理,而是由session服務(wù)及內(nèi)存數(shù)據(jù)庫(kù)管理。
5、分布式鎖
在很多互聯(lián)網(wǎng)公司中都使用了分布式技術(shù),分布式技術(shù)帶來的技術(shù)挑戰(zhàn)是對(duì)同一個(gè)資源的并發(fā)訪問,如全局ID、減庫(kù)存、秒殺等場(chǎng)景,并發(fā)量不大的場(chǎng)景可以使用數(shù)據(jù)庫(kù)的悲觀鎖、樂觀鎖來實(shí)現(xiàn),但在并發(fā)量高的場(chǎng)合中,利用數(shù)據(jù)庫(kù)鎖來控制資源的并發(fā)訪問是不太理想的,大大影響了數(shù)據(jù)庫(kù)的性能。可以利用Redis的setnx功能來編寫分布式的鎖,如果設(shè)置返回1說明獲取鎖成功,否則獲取鎖失敗,實(shí)際應(yīng)用中要考慮的細(xì)節(jié)要更多。
6、 社交網(wǎng)絡(luò)
點(diǎn)贊、踩、關(guān)注/被關(guān)注、共同好友等是社交網(wǎng)站的基本功能,社交網(wǎng)站的訪問量通常來說比較大,而且傳統(tǒng)的關(guān)系數(shù)據(jù)庫(kù)類型不適合存儲(chǔ)這種類型的數(shù)據(jù),Redis提供的哈希、集合等數(shù)據(jù)結(jié)構(gòu)能很方便的的實(shí)現(xiàn)這些功能。如在微博中的共同好友,通過Redis的set能夠很方便得出。
7、最新列表
Redis列表結(jié)構(gòu),LPUSH可以在列表頭部插入一個(gè)內(nèi)容ID作為關(guān)鍵字,LTRIM可用來限制列表的數(shù)量,這樣列表永遠(yuǎn)為N個(gè)ID,無(wú)需查詢最新的列表,直接根據(jù)ID去到對(duì)應(yīng)的內(nèi)容頁(yè)即可。
8、消息系統(tǒng)
消息隊(duì)列是大型網(wǎng)站必用中間件,如ActiveMQ、RabbitMQ、Kafka等流行的消息隊(duì)列中間件,主要用于業(yè)務(wù)解耦、流量削峰及異步處理實(shí)時(shí)性低的業(yè)務(wù)。Redis提供了發(fā)布/訂閱及阻塞隊(duì)列功能,能實(shí)現(xiàn)一個(gè)簡(jiǎn)單的消息隊(duì)列系統(tǒng)。另外,這個(gè)不能和專業(yè)的消息中間件相比。
Redis相比Memcached有哪些優(yōu)勢(shì)?
數(shù)據(jù)類型:Memcached所有的值均是簡(jiǎn)單的字符串,Redis支持更為豐富的數(shù)據(jù)類型,支持string(字符串),list(列表),Set(集合)、Sorted Set(有序集合)、Hash(哈希)等。
持久化:Redis支持?jǐn)?shù)據(jù)落地持久化存儲(chǔ),可以將內(nèi)存中的數(shù)據(jù)保持在磁盤中,重啟的時(shí)候可以再次加載進(jìn)行使用。Memcached不支持?jǐn)?shù)據(jù)持久存儲(chǔ) 。
集群模式:Redis提供主從同步機(jī)制,以及 Cluster集群部署能力,能夠提供高可用服務(wù)。Memcached沒有原生的集群模式,需要依靠客戶端來實(shí)現(xiàn)往集群中分片寫入數(shù)據(jù)
性能對(duì)比:Redis的速度比Memcached快很多。
網(wǎng)絡(luò)IO模型:Redis使用單線程的多路 IO 復(fù)用模型,Memcached使用多線程的非阻塞IO模式。
Redis支持服務(wù)器端的數(shù)據(jù)操作:Redis相比Memcached來說,擁有更多的數(shù)據(jù)結(jié)構(gòu)和并支持更豐富的數(shù)據(jù)操作,通常在Memcached里,你需要將數(shù)據(jù)拿到客戶端來進(jìn)行類似的修改再set回去。
這大大增加了網(wǎng)絡(luò)IO的次數(shù)和數(shù)據(jù)體積。在Redis中,這些復(fù)雜的操作通常和一般的GET/SET一樣高效。所以,如果需要緩存能夠支持更復(fù)雜的結(jié)構(gòu)和操作,那么Redis會(huì)是不錯(cuò)的選擇。
-
緩存
+關(guān)注
關(guān)注
1文章
243瀏覽量
26828 -
數(shù)據(jù)庫(kù)
+關(guān)注
關(guān)注
7文章
3868瀏覽量
65005 -
網(wǎng)站
+關(guān)注
關(guān)注
2文章
259瀏覽量
23309 -
Redis
+關(guān)注
關(guān)注
0文章
380瀏覽量
11045
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
AC+AP的WLAN無(wú)線方案有應(yīng)用場(chǎng)景嗎?都有哪些?
步進(jìn)電機(jī)是什么工作原理?有哪些分類?應(yīng)用場(chǎng)景是什么?
redis應(yīng)用場(chǎng)景及實(shí)例

Redis 五大數(shù)據(jù)類型使用場(chǎng)景有哪些
redis及其使用場(chǎng)景
Redis的數(shù)據(jù)類型有哪些
Redis工具集的實(shí)現(xiàn)和使用

評(píng)論