首頁»數據庫»Redis 在現實世界的 5 個用法

Redis 在現實世界的 5 個用法

來源:codeceo 發布時間:2018-02-01 閱讀次數:

  Redis是一個強大的內存數據結構存儲,包含數據庫,緩存和消息代理等多種用途。大多數人經常認為它不過是一個簡單的鍵值存儲,但其實它有更多的能力。下面我將會總結一些Redis可以做的事情的真實例子。

 1.全頁面緩存

  首先是整頁緩存。如果你正在使用服務器端呈現的內容,則不需要為每個單獨的請求重新渲染每個頁面。使用如Redis這樣的緩存,你可以緩存經常請求的內容,從而大大減少請求最多的頁面的延遲,并且大多數框架針對Redis緩存頁面都有hooks。

  簡單命令

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

// Get the page
GET key

 2.排行榜

  Redis令人耀眼的地方之一就是排行榜。由于Redis在內存中,因此可以非常快速和高效地處理遞增和遞減。將此與每個請求運行SQL查詢比較,性能收益巨大!這與Redis的排序集相結合意味著你可以以毫秒為單位抓取列表中評分最高的項目,而且實現起來非常容易。

  簡單命令

// 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存儲

  我所見的Redis最常見的用途是會話存儲。與其他會話存儲(如Memcache)不同,Redis可以保留數據,以便在緩存停止的情況下,在重新啟動時,所有數據仍然存在。即便不是需要嚴格持續的任務,此功能仍可以為你的用戶省去大量的麻煩。沒有人會樂于見到他們的會話被無緣無故隨機刪掉。

  簡單命令

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

// Get userId
GET randomHash

 4.隊列

  使用Redis可以做的一個不太常見,但非常有用的事情是排隊。無論是電子郵件隊列還是其他應用程序使用的數據,你都可以在Redis中創建一個高效的隊列。任何熟悉堆棧以及會push和pop項目的開發人員都可以輕松自然地使用此功能。

  簡單命令

// 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.pub/sub

  Redis在真實世界的最終用法即我將在這篇文章中提出的pub / sub。這是Redis內置的最強大的功能之一;得到的可能是無限的。你可以創建一個實時聊天系統,在社交網絡上觸發好友請求的通知等等。這個功能是Redis提供的最被低估的功能之一,但功能非常強大,而且使用簡單。

  簡單命令

// Add a message to a channel
PUBLISH channel message

// Recieve messages from a channel
SUBSCRIBE channel

 結論

  我希望你會喜歡這些Redis在真實世界的使用。雖然這篇文章只抓住了Redis能為你做的事情的表面,但是我希望你能從中獲得應如何充分利用Redis的啟發。

  英文原文:5 Real World Uses for Redis

QQ群:WEB開發者官方群(515171538),驗證消息:10000
微信群:加小編微信 849023636 邀請您加入,驗證消息:10000
提示:更多精彩內容關注微信公眾號:全棧開發者中心(fsder-com)
網友評論(共0條評論) 正在載入評論......
理智評論文明上網,拒絕惡意謾罵 發表評論 / 共0條評論
登錄會員中心
大发国际网址 青川县| 女性| 景宁| 辽源市| 泰兴市| 寿阳县| 浦东新区| 永胜县| 什邡市| 保山市| 福鼎市| 红原县| 汉川市| 屏山县| 游戏| 侯马市| 兴文县| 德阳市| 原阳县| 镇安县| 六盘水市| 手游| 靖西县| 永川市| 天等县| 驻马店市| 阳谷县| 赤水市| 建德市| 女性| 阿克| 康定县| 邛崃市| 阳信县| 县级市| 南川市| 南充市| 如东县| 红安县| 黑水县| 综艺| 凤山县| 蒲江县| 民乐县| 吉木萨尔县| 河东区| 凤翔县| 青铜峡市| 酉阳| 河池市| 宣汉县| 泰来县| 封开县| 巴塘县| 泗水县| 元阳县| 新兴县| 南城县| 健康| 桐柏县| 神池县| 新营市| 五莲县| 喜德县| 巴东县| 静宁县| 辽源市| 德州市| 普定县| 天门市| 尤溪县| 本溪市| 哈巴河县| 澳门| 固镇县| 马公市| 琼海市| 巴里| 永济市| 大同县| 永春县| 苍梧县| 普定县| 灌南县| 曲周县| 南岸区| 河间市| 柘荣县| 林芝县| 汤原县| 石家庄市| 宝山区| 松原市| 观塘区| 临城县| 囊谦县| 姚安县| 如皋市| 荥经县| 将乐县| 吉水县| 旺苍县| 民县| 屏东市| 兰西县| 若尔盖县| 永兴县| 宁德市| 集贤县| 邢台市| 瑞丽市| 祥云县| 平乐县| 云霄县| 新巴尔虎左旗| 定边县| 舟山市| 农安县| 蓝山县| 吉安县| 乐都县| 马山县| 南皮县| 永平县| 溧水县| 寿宁县| 南澳县| 巴里| 措勤县| 拉孜县| 福鼎市| 郧西县| 彭泽县| 高安市| 高平市| 莱州市| 中超|