Redis 在真實世界的 5 個用法

2022-09-28 06:36:11 字數 1962 閱讀 9263

redis是乙個開源的使用ansi c語言編寫、支援網路、可基於記憶體亦可持久化的日誌型、key-value資料庫,並提供多種語言的api。從2023年3月15日起,redis的開發工作由vmware主持。從201kbjxmnfd3年5月開始,redis的開發由pivotal贊助。

redis是乙個強大的記憶體資料結構儲存,包含資料庫,快取和訊息**等多種用途。大多數人經常認為它不過是乙個簡單的鍵值儲存,但其實它有更多的能力。下面我將會總結一些redis可以做的事情的真實例子。

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

簡單命令

/ set the p程式設計客棧age that will last 1 minute

set key "..." ex 60

// get the page

get key

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

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

簡單命令

// set session that will last 1 minute

set randomhash "" ex 60

// get userid

get randomhash

使用redis可以做的乙個不太常見,但非常有用的事情是排隊。無論是電子郵件佇列還是其他應用程式使用的資料,你都可以在redis中建立乙個高效的佇列。任何熟悉堆疊以及會push和pop專案的開發人員都可以輕鬆自然地使用此功能。

簡單命令

// add a message

hset messages

zadd due kbjxmnfdt;

// recieving message

zrangebyscore due -inf > limit 0 1

hget messages

// delete message

zrem due

hdel messages

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 在真實世界的 5 個用法

本文位址:

華納雲 Redis在現實中的5個用法

redis是乙個強大的記憶體資料結構儲存,包含資料庫,快取和訊息 等多種用途。大多數人經常認為它不過是乙個簡單的鍵值儲存,但其實它有更多的能力。下面我將會總結一些redis可以做的事情的真實例子。1.全頁面快取 首先是整頁快取。如果你正在使用伺服器端呈現的內容,則不需要為每個單獨的請求重新渲染每個頁...

演繹真實世界 看人性在遊戲中的養成之路

有人說 上一代把網路作為工具,這一代以網路為世界。不可否認,這話是有一定道理的。聯絡世界就意味著交流互動,網路交流的便捷性是有目共睹的。其中網路遊戲裡人與人之間的互動就屬於網路交流。我們在遊戲中扮演角色,釋放源於現實生活的壓力,盡情地真實地展現自我,演繹著另乙個世界。這個世界有社會,有交際,也有氛圍...

vuex的5個核心用法

vuex 是乙個專為 vue.js 應用程式開發的狀態管理模式。它採用集中式儲存管理應用的所有元件的狀態,並以相應的規則保證狀態以一種可 的方式發生變化 可以把多個元件鏈結起來 vuex中5個主要核心 state 相當於單頁面data,用於存放需要元件中共享的資料 gettermutation 相當...