键值存储之外,Redis还有这些用法
轉載自? ?鍵值存儲之外,Redis還有這些用法
Redis是一個強大的內存數據結構存儲,包含數據庫,緩存和消息代理等多種用途。大多數人經常認為它不過是一個簡單的鍵值存儲,但其實它有更多的能力。下面給出一些實例
1.全頁面緩存
首先是整頁緩存。如果你正在使用服務器端呈現的內容,則不需要為每個單獨的請求重新渲染每個頁面。使用如Redis這樣的緩存,你可以緩存經常請求的內容,從而大大減少請求最多的頁面的延遲,并且大多數框架針對Redis緩存頁面都有hooks。
簡單命令
/?Set?the?page?that?will?last?1?minute SET?key?"<html>...</html>"?EX?60//?Get?the?page GET?key2.排行榜
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?WITHSCORES3.會話Session存儲
我所見的Redis最常見的用途是會話存儲。與其他會話存儲(如Memcache)不同,Redis可以保留數據,以便在緩存停止的情況下,在重新啟動時,所有數據仍然存在。即便不是需要嚴格持續的任務,此功能仍可以為你的用戶省去大量的麻煩。沒有人會樂于見到他們的會話被無緣無故隨機刪掉。
簡單命令
//?Set?session?that?will?last?1?minute SET?randomHash?"{userId}"?EX?60//?Get?userId GET?randomHash4.隊列
使用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的靈感。
總結
以上是生活随笔為你收集整理的键值存储之外,Redis还有这些用法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 路由器流量如何监控和限制无线路由器怎样控
- 下一篇: 数据库的这些性能优化,你做了吗