首頁  >  文章  >  web前端  >  雷迪斯

雷迪斯

WBOY
WBOY原創
2024-08-10 20:42:33449瀏覽

雷迪斯

雷迪斯 是 NOSQL 資料庫,資料以鍵值對的形式儲存。
雷迪斯 將資料儲存在主記憶體上,這意味著它速度快,但易失性,不像 PostgreSQL 等資料庫系統將資料儲存在磁碟上。

概述

在具有伺服器和資料庫的應用程式中,存取資料庫上的資訊會導致延遲。

像redis這樣的Key-Value資料庫通常保存在這些資料庫前面,存取操作需要2個步驟:

  1. 如果資訊在快取中,快取命中,應用程式從redis中檢索資訊並發送給客戶端
  2. 如果沒有,快取未命中,應用程式從資料庫中獲取信息,將其發送到客戶端並將其儲存在快取中。

透過這兩個步驟,並且考慮到主記憶體的延遲低於磁碟,我們可以說雷迪斯 可用於儲存和存取頻繁的、最近的資料和昂貴的操作,從而使應用程式速度提高10 到50 倍。

因此,如果您要建立一個未來可擴展的應用程序,雷迪斯(或類似於 雷迪斯 的資料庫)是必不可少的。


問題

  1. 雷迪斯 開源嗎? :是的,雷迪斯 是開源的,具有特殊類型的許可證,但也有其他替代方案,例如 Snapchat 的 KeyDB 和 Memcached 都是開源的。 KeyDB 是 雷迪斯 的一個分支,但目前只能在 Linux 上運作。

  2. 雷迪斯 支援 Windows 嗎? :不,雷迪斯 不支援 Windows,但您可以安裝 WSL/Ubuntu,並使用
    安裝 redis

sudo apt install redis
  1. 我正在使用 WSL,為什麼 redis 伺服器無法在我的系統上運行:在 WSL 上運行時,您可以使用以下命令運行 redis-server
redis-server --port 6000

其中 6000 是您要執行它的本機伺服器上的連接埠。 (即 127.0.0.1:6000)。

大多數問題是由於 redis-server 使用的預設連接埠已被使用

  1. 有 雷迪斯 的客戶端函式庫嗎? :確實有。您可以在 雷迪斯 網站上找到它們,也可以自己建立一個。

安裝雷迪斯

在Linux上,安裝redis就像
一樣簡單

sudo apt install redis
Mac 上的


brew install redis

運行雷迪斯

您需要在 上擁有 2 個終端實例

第一個運行您的伺服器

redis-server -port <portnumber>
</portnumber>

在第二個運行你的客戶端

redis-cli

建置Web應用程式時,不需要執行客戶端但需要執行伺服器

雷迪斯 概念

您應該了解 雷迪斯 中的 3 個主要概念或 4

  1. 鍵值對
  2. 列表
  3. 套裝
  4. 雜湊值

所有其他資料結構主要是第一個資料結構的高階實作

所謂的列表,我的意思是數組而不是鍊錶,這就是redis的稱呼。


鍵值對

鍵值對是大多數程式語言中常見的資料結構。

  1. 在 Python 中稱為字典或簡稱 dict

  2. 在 Javascript 稱為 地圖

  3. 在 C# 稱為 字典

雷迪斯 中鍵值對的主要操作有 6 種

Operations Explanations Examples Further Explanation
SET Creates a key-value pair SET name John Sets key to map to value
GET Gets value for key GET name This returns John
DEL Deletes the key value pair DEL name This removesthe key value pair name from the database
EXISTS Checks if a key exists in the redis database EXISTS name returns 1 or 0 corresponding to True or False
FLUSHALL Clears the entire cache FLUSHALL more or less like DROP TABLE in postgres
KEYS * Returns all the keys in the database KEYS *

還有基於時間的操作。在基於時間的操作中,金鑰僅在快取中保存一段設定的時間,時間到期後,快取會刪除該金鑰。

有 2 個主要的基於時間的操作

Operations Explanations Examples Further Explanation
EXPIRE Expires a key after being defined EXPIRE name 10 Deletes the key-value name after 10s .The key must be defined with SET before calling EXPIRE . A common alternative is;
SETEX Expires a key upon definition SETEX age 30 15 Sets the key age to value 30 and thereafter deleted the key-value pair after 15s
TTL Time To Live TTL age Returns the time remaining before deletion of the age key

博客太長了,我將討論列表集合哈希圖以及有關redis的可能面試問題 在另一個博客中。

如果您有任何疑問,請在下面評論,我會盡力回答⭐。快樂編碼

以上是雷迪斯的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn