Redis 是一個 NOSQL 資料庫,資料以鍵值對的形式儲存。
Redis 將資料儲存在主記憶體上,這意味著它速度快,但易失性,不像 PostgreSQL 等資料庫系統將資料儲存在磁碟上。
在具有伺服器和資料庫的應用程式中,存取資料庫上的資訊會導致延遲。
像redis這樣的Key-Value資料庫通常保存在這些資料庫前面,存取操作需要2步驟:
透過這兩個步驟,並且考慮到主記憶體的延遲低於磁碟,我們可以說Redis 可用於儲存和存取頻繁的、最近的資料和昂貴的操作,從而使應用程式速度提高10 到50 倍。
因此,事實是,如果您要建立一個未來可擴展的應用程序,Redis(或類似於 Redis 的資料庫)是必不可少的。
Redis 開源嗎? :是的,Redis 是開源的,具有特殊類型的許可證,但也有其他替代方案,例如 Snapchat 的 KeyDB 和 Memcached 都是開源的。 KeyDB 是 Redis 的一個分支,但目前只能在 Linux 上運作。
Redis支援Windows嗎? :不,Redis不支援Windows,但可以安裝WSL/Ubuntu並使用
安裝redis
sudo apt install redis
redis-server --port 6000
其中 6000 是您要執行它的本機伺服器上的連接埠。 (即 127.0.0.1:6000)。
大多數問題是由於 redis-server 使用的預設連接埠已被使用
在Linux上,安裝redis就像
sudo apt install redisMac 上的
或 :
brew install redis
您需要 上有 2 個終端實例
在第一個運行您的伺服器的伺服器上
redis-server -port
然後在第二個上運行您的客戶端
redis-cli
建置Web應用程式時,不需要執行客戶端但需要運行伺服器
Redis 概念
redis中有3個你應該了解的主要概念或4
所有其他資料結構主要是第一個的高階實作
透過列表,我的意思是陣列而不是鍊錶,這就是redis的稱呼。
鍵值對是大多數程式語言中常見的資料結構。
在Python中稱為字典或簡稱dict
在Javascript中稱為Maps
在 C# 中稱為 Dictionaries
Redis中鍵值對的操作主要有6種
營運 | 說明 | 範例 | 進一步說明 |
---|---|---|---|
放 | 建立鍵值對 | 設定姓名約翰 | 設定鍵映射到值 |
得到 | 取得鍵的值 | 取得名稱 | 這將返回約翰 |
刪除 | 刪除鍵值對 | 刪除名稱 | 這將從資料庫中刪除鍵值對名稱 |
存在 | 檢查redis資料庫中是否存在某個key | 存在名稱 | 傳回 1 或 0 對應 True 或 False |
沖洗廳 | 清除整個快取 | 沖洗廳 | 或多或少類似 postgres 中的 DROP TABLE |
按鍵 * | 傳回資料庫中的所有鍵 | 按鍵 * |
還有基於時間的操作。在基於時間的操作中,金鑰僅在快取中保存一段設定的時間,時間到期後,快取會刪除該金鑰。
有 2 個主要的基於時間的操作
營運 | 說明 | 範例 | 進一步說明 |
---|---|---|---|
到期 | 定義鍵後使其過期 | 使姓名 10 過期 | 10秒後刪除鍵值名稱。該鍵必須在調用 EXPIRE 之前使用 SET 定義。常見的替代方案是; |
SETEX | 定義後使鍵過期 | SETEX 年齡 30 15 | 將鍵年齡設為值30,並在15秒後刪除鍵值對 |
TTL | 生存時間 | TTL年齡 | 返回刪除年齡鍵之前剩餘的時間 |
部落格已經太長了,我會討論lists、sets、hashmaps以及關於redis可能的面試問題 在另一個部落格中。
如果您有任何疑問,請在下面評論,我會盡力回答⭐。快樂編碼
免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。
Copyright© 2022 湘ICP备2022001581号-3