中文字幕在线观看,亚洲а∨天堂久久精品9966,亚洲成a人片在线观看你懂的,亚洲av成人片无码网站,亚洲国产精品无码久久久五月天

Redis 的 5 個常見應用場景

2018-07-20    來源:編程學習網(wǎng)

容器云強勢上線!快速搭建集群,上萬Linux鏡像隨意使用

前言

Redis 是一個強大的內(nèi)存型存儲,具有豐富的數(shù)據(jù)結構,使其可以應用于很多方面,包括作為數(shù)據(jù)庫、緩存、消息隊列等等。

如果你的印象中Redis只是一個 key-value 存儲,那就錯過了Redis很多強大的功能,下面就是實際應用場景中5個最普遍的案例。

1. 全頁面緩存

如果你使用的是服務器端內(nèi)容渲染,你又不想為每個請求重新渲染每個頁面,就可以使用 Redis 把常被請求的內(nèi)容緩存起來,能夠大大的降低頁面請求的延遲,已經(jīng)有很多框架用Redis來緩存頁面,這就是頁面靜態(tài)化的一種方式。

// Set the page that will last 1 minute
SET key "<html>...</html>" EX 60

// Get the page
GET key

2. 排行榜

Redis 基于內(nèi)存,可以非常快速高效的處理增加和減少的操作,相比于使用 SQL 請求的處理方式,性能的提升是非常巨大的。

Redis 的有序集合可以輕松實現(xiàn)“從一個大型列表中取得排名最高的N個元素”,毫秒級,而且非常簡單。

// Add an item to the sorted set
ZADD sortedSet 1 "one"

// Get all items from the sorted set
ZRANGE sortedSet 0 -1

// Get all items from the sorted set with their score
ZRANGE sortedSet 0 -1 WITHSCORES

3. Session 存儲

這可能是應用最廣的點了,相比較于類似 memcache 的 session 存儲,Redis 具有緩存數(shù)據(jù)持久化的能力,當緩存因出現(xiàn)問題而重啟后,之前的緩存數(shù)據(jù)還在那兒,這個就比較實用,避免了因為session突然消失帶來的用戶體驗問題。

// Set session that will last 1 minute
SET randomHash "{userId}" EX 60

// Get userId
GET randomHash

4. 隊列

例如 email 的發(fā)送隊列、等待被其他應用消費的數(shù)據(jù)隊列,Redis 可以輕松而自然的創(chuàng)建出一個高效的隊列。

// Add a Message
HSET messages <id> <message>
ZADD due <due_timestamp> <id>

// Recieving Message
ZRANGEBYSCORE due -inf <current_timestamp> LIMIT 0 1
HGET messages <message_id>

// Delete  Message
ZREM due <message_id>
HDEL messages <message_id>

5. 發(fā)布/訂閱

pub/sub   是 Redis 內(nèi)置的一個非常強大的特性,例如可以創(chuàng)建一個實時的聊天系統(tǒng)、社交網(wǎng)絡中的通知觸發(fā)器等等。

// Add a message to a channel
PUBLISH channel message

// Recieve messages from a channel
SUBSCRIBE channel

小結

這5個小用例只是Redis的很表層的功能,希望能為你帶來一點靈感。

點擊 “閱讀原文” 查看文章列表

 

來自:http://mp.weixin.qq.com/s/qFoLaZ9bFdqTXOBvIRYqIQ

 

標簽: 服務器 服務器端 排名 數(shù)據(jù)庫 網(wǎng)絡

版權申明:本站文章部分自網(wǎng)絡,如有侵權,請聯(lián)系:west999com@outlook.com
特別注意:本站所有轉(zhuǎn)載文章言論不代表本站觀點!
本站所提供的圖片等素材,版權歸原作者所有,如需使用,請與原作者聯(lián)系。

上一篇:TCP/IP 必知必會的十個問題

下一篇:由FTWRL導致的MySQL從庫死鎖分析及參數(shù)深究