共計 1624 個字符,預計需要花費 5 分鐘才能閱讀完成。
自動寫代碼機器人,免費開通
Redis 是一個開源的使用 ANSI C 語言編寫、支持網絡、可基于內存亦可持久化的日志型、Key-Value 數據庫,并提供多種語言的 API。從 2010 年 3 月 15 日起,Redis 的開發工作由 VMware 主持。從 2013 年 5 月開始,Redis 的開發由 Pivotal 贊助。
Redis 是一個強大的內存數據結構存儲,包含數據庫,緩存和消息代理等多種用途。大多數人經常認為它不過是一個簡單的鍵值存儲,但其實它有更多的能力。下面我將會總結一些 Redis 可以做的事情的真實例子。
首先是整頁緩存。如果你正在使用服務器端呈現的內容,則不需要為每個單獨的請求重新渲染每個頁面。使用如 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
使用 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 的啟發。
向 AI 問一下細節
丸趣 TV 網 – 提供最優質的資源集合!