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

2021-10-21 00:07:11 字數 1696 閱讀 8263

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

1.全頁面快取

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

簡單命令

**/ set the page that will last 1 minuteset key 「…」 ex 60// get the pageget key

2.排行榜

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

簡單命令

**// add an item to the sorted setzadd sortedset 1 「one」// get all items from the sorted setzrange 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 minuteset randomhash 「」 ex 60// get useridget randomhash

4.佇列

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

簡單命令

**// add a message

hset messages zadd due // recieving message

zrangebyscore due -inf limit 0 1

hget messages // delete message

zrem due hdel messages

5.pub/sub

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

簡單命令

**// add a message to a channelpublish channel message// recieve messages from a channelsubscribe channel

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

Redis 在真實世界的 5 個用法

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

Redis在YiiFramework中的使用

客戶端簡介 predis 純php類,不需要安裝redis for php擴充套件 rediska純php類,目前還是beta版本,具體沒有測試過 本文件主要介紹redis 作為擴充套件在yii中的使用 使用方法很介單,支援分布式儲存 開啟配置檔案 project prodected config ...

在CentOS7 8中安裝redis5

本文簡要講述在centos7.8中安裝redis5。2.1安裝gcc依賴 由於 redis 是用 c 語言開發,安裝之前必先確認是否安裝 gcc 環境 gcc v 如果沒有安裝,執行以下命令進行安裝 root localhost local yum install y gcc root localh...