Redis 和 PHP 快速數據存儲入門

流行的 Redis 存儲引擎是任何軟件開發人員的必備工具。內存存儲引擎允許以極快的速度存儲和檢索數據,每秒高達 3200 萬次查詢,使其成為任何主要數據庫引擎的主要補充。

讓我們深入了解,了解如何加快我們的在線運營。

Redis:優點與缺點

Redis 的最大好處是它是一個純粹的內存數據存儲,這意味著它非常快,因為數據庫存儲在 RAM 中,因此不需要對硬盤進行文件 I/O 操作。

其他額外的好處是它的簡單性、通過 Redis-cluster 的集群支持,以及它對八種不同數據類型的支持,為您提供根據需要存儲和管理數據所需的靈活性。

然而,它最大的缺點還在於它純粹是一個內存數據存儲,因此有大小限制。這取決於您的服務器基礎設施,但為了本文和簡單起見,您的典型 Redis 數據庫最多只能保存 2-4GB 的數據。

這意味著 Redis 用於補充常用的數據庫引擎,例如 mySQL、PostgreSQL 和 MongoDB,而不是作為替代品。Redis 的主要用途包括緩存、將在短時間內過期的臨時/最近數據或經常訪問的小塊數據。

如何安裝Redis

假設您正在運行 Ubuntu 或任何包含apt-get 命令的Linux 發行版,要安裝 Redis,只需在終端中運行以下命令:

sudo apt-get install redis-server

接下來,檢查以確保 Redis 已成功安裝。在終端中,運行以下命令:

redis-cli --version

這應該會打印您正在運行的 Redis 版本,假設是這樣,請運行以下命令以連接到 Redis:

redis-cli

這將在終端中為您提供一個非標準的 Redis 提示,如下所示:

127.0.0.1:6379>

字符串命令

Redis 中的每個條目都由一個鍵標識,該鍵可以是您希望的任何非空白字符串。字符串僅包含一個值,例如,在 Redis 提示符下運行以下命令以將值設置為幾個鍵。

127.0.0.1:6379> set full_name "John Doe" 127.0.0.1:6379> set units 5

您現在可以使用 keys 命令列出 Redis 數據庫中當前的所有鍵。

127.0.0.1:6379> keys *

這將導致顯示您之前設置的兩個鍵,full_name 和units。您可以使用 get 命令查看這些鍵的值。

127.0.0.1:6379> get full_name "John Doe" 127.0.0.1:6379> get units 5

使用 del 命令可以輕鬆刪除密鑰。

127.0.0.1:6379> del full_name

也可以使用hincrby命令快速增加一個整數。以下將“單位”鍵從 5 增加到 7。

127.0.0.1:6379> incrby units 2

列出命令

Redis中的列表是具有特定順序的一維數組,並且允許列表不同位置的重複項。可以使用lpushrpush命令將項目添加到列表的左側或右側。

127.0.0.1:6379> lpush colors blue 127.0.0.1:6379> rpush colors red yellow green

從上面的示例中可以看出,您可以在單個命令中將多個項目推送到列表中。我們現在可以使用lrange命令查看列表中的所有項目。

127.0.0.1:6379> lrange colors 0 -1

命令末尾有兩個整數,第一個定義列表中開始的位置,第二個是要返回的項目數,-1 表示所有項目。上述命令的結果將是,blue, red, Yellow, green

您還可以使用lpoprpop命令從列表的任一端刪除項目。

127.0.0.1:6379> lpop colors blue 127.0.0.1:6379> rpop colors green

您還可以使用llen命令獲取列表中的元素數量。

127.0.0.1:6379> llen colors (integer) 2

最後,您可以通過lrem命令從列表中刪除一個元素。

127.0.0.1:6379> lrem colors 1 green (integer) 1

lrem命令與列表名開始,接著出現的次數以去除,和元素的名稱以除去。它將返回找到並從列表中刪除的出現次數。

哈希命令

Redis 中最流行的數據類型之一是散列,它允許您在單個條目中存儲多個鍵值對。鍵不需要已經存在,您可以隨時使用hset命令定義鍵值對。

127.0.0.1:6379> hset user:581 full_name "Jane Doe" 127.0.0.1:6379> hset user:581 points 500

您還可以使用hmset命令在單個命令中定義散列的多個鍵值對。

127.0.0.1:6379> hmset user:581 email [email protected] gender F

由 key user:581標識的哈希現在共有四個鍵值對,所有這些都可以使用hgetall命令輕鬆檢索。

127.0.0.1:6379> hgetall user:581 1) "full_name" 2) "Jane Doe" 3) "points" 4) "500" 5) "email" 6) "[email protected]" 7) "gender" 8) "F"

您還可以使用get命令獲取散列中單個鍵值對的值。

127.0.0.1:6379> hget user:581 email "[email protected]"

對於散列中的任何整數,您可以使用 code hincrby命令將它們增加指定的數量。

127.0.0.1:6379> hincrby user:581 points 20 (integer) 520

散列中的鍵值現在已增加 20 到 520。可以使用hdel命令刪除散列中的單個鍵值對。

127.0.0.1:6379> hdel user:581 gender

或者,您也可以使用del命令刪除完全包括所有鍵值對的哈希。

127.0.0.1:6379> del user:581

過期 Redis 密鑰

Redis 的另一個出色功能是能夠使用expire命令在定義的秒數後自動使密鑰過期。請注意,您只能使完整鍵失效,而不能使列表或散列中的單個元素失效。例如:

127.0.0.1:6379> expire full_name 10

這將為您在字符串部分創建的full_name鍵設置 10 秒的到期時間。運行上述命令後,等待 10 秒,然後再次嘗試檢索密鑰的值。

127.0.0.1:6379> get full_name (nil)

正如預期的那樣,密鑰現在已經過期,因此我們得到 null 作為結果。

使用 PHP 連接到 Redis

現在您已經了解瞭如何使用 Redis 存儲和檢索數據的基礎知識,是時候將其連接到您的軟件中了。所有的編程語言都有用於 Redis 的模塊/擴展,但在這個例子中,我們將使用 PHP。

您首先必須安裝 PHP-Redis 擴展,因為它不是默認安裝的。在終端中,運行命令。

sudo apt-get install php-redis

安裝後,請確保重新啟動 PHP-fpm,以便正確加載擴展。下面是一些連接到 Redis 並與之交互的 PHP 代碼。

<> // Connect to redis $conn = new redis(); try { $conn->connect('127.0.0.1', 6379, 5); } catch (RedisException $e) { die("Unable to connect to redis"); } // Set string $conn->set('country', 'Canada'); // Get string $value = $conn->get('country'); echo "Country is: $value "; // Define a profile $profile = [ 'username' => 'mike', 'full_name' => 'Mike Smith', 'email' => '[email protected]', 'country' => 'Australia' ]; // Create a hash $conn->hmset('user:188', $profile); // Get all values of the profile hash $values = $conn->hgetall('user:188'); print_r($values); // Get only the e-mail address $email = $conn->hget('user:188', 'email'); echo "E-mail is: $email "; // Expire the hash in 15 seconds $conn->expire('user:188', 15);

上面的示例代碼應該很簡單。它首先以 5 秒的超時時間連接到 Redis,然後繼續設置並獲取字符串和哈希。所有 Redis 命令都可以通過OOP執行,方法是直接從 Redis 對象調用它們,如上例所示。

你在路上!

恭喜,您已經了解瞭如何通過 Redis 存儲引擎以極快的速度存儲和檢索數據的基礎知識,包括如何使用 PHP 連接到 Redis 並與之交互。

請注意,本文僅涵蓋了非常基礎的知識,文檔的Redis 數據類型頁面是繼續探索 Redis 及其所有功能的好地方。


如何在 Chromebook 上複製和粘貼

如何在 Chromebook 上複製和粘貼

在切換到 Chromebook 時,您可能想知道的第一件事是如何做基本的事情——你在以前的操作系統中掌握的那種東西。複製和粘貼是您必須在某一時刻使用的一項基本功能。

如何使用 tt 在 Linux 上進行打字測試

如何使用 tt 在 Linux 上進行打字測試

在現代科技時代,打字已成為許多職業最常見的活動之一。學會更快更準確地打字可以幫助您在相同的時間內完成更多的工作。

Wi-Fi 在 Ubuntu 上不工作?這是修復方法

Wi-Fi 在 Ubuntu 上不工作?這是修復方法

Ubuntu 因其健壯性和相對較少的錯誤而廣受歡迎。但它肯定不是沒有問題。其中一個問題是其 Wi-Fi 驅動程序。您可能會打開系統電源,卻發現您的 Wi-Fi 無法正常工作。

如何在 Chromebook 上創建和掃描二維碼

如何在 Chromebook 上創建和掃描二維碼

快速響應碼,簡稱 QR 碼,是一種高級條碼,包含比傳統條碼更多的信息。這些代碼是二維的,允許您垂直或水平掃描它們。

如何在 Arch Linux 中安裝和刪除軟件包

如何在 Arch Linux 中安裝和刪除軟件包

想在 Arch Linux 上安裝軟件包但不知道如何安裝?很多人第一次從基於 Debian 的發行版遷移到 Arch 時都會遇到這個問題。但是,您可以使用包管理器輕鬆管理基於 Arch 的系統上的包。

如何在 Linux 上安裝 Spotify

如何在 Linux 上安裝 Spotify

Spotify 是最大的音樂流媒體服務之一。它具有適用於移動(Android 和 iOS)和桌面(Mac 和 Windows)設備的本機客戶端。

9 個讓你開始使用 Linux 的基本命令

9 個讓你開始使用 Linux 的基本命令

Linux 操作指南通常希望您在終端中執行某些操作,這乍一看似乎令人生畏。但不要擔心;這個 Linux 命令備忘單將涵蓋打開終端和發出一些有用命令的過程。

如何使用 Mv 命令移動 Linux 文件

如何使用 Mv 命令移動 Linux 文件

雖然您可能已經知道如何使用 GUI 文件瀏覽器在 Linux 中移動文件,但您可能想知道終端中是否有移動命令可以讓您快速將文件移動到不同的目錄。mv 命令就是您想要的,它的簡單語法和一些可選的安全標誌易於使用。

10 個基於 Debian 的最佳 Linux 發行版

10 個基於 Debian 的最佳 Linux 發行版

標準 Debian 及其流行的分支 Ubuntu 是 Linux 系統的絕佳選擇,但如果您有更專業的需求,您可能需要 Debian 替代品。

如何使用 fdupes 在 Linux 上查找和刪除重複文件

如何使用 fdupes 在 Linux 上查找和刪除重複文件

在處理大量媒體和文檔時,在計算機上積累同一文件的多個副本是很常見的。不可避免地,隨之而來的是一個充滿冗余文件的雜亂存儲空間,引發對系統上重複文件的定期檢查。

什麼是筆記本電腦的最佳 Linux 發行版?

什麼是筆記本電腦的最佳 Linux 發行版?

Linux 最好的事情之一是每個人都有一個發行版,無論您使用什麼類型的硬件。你可以從你的閣樓裡拿出一台破舊的筆記本電腦,把它除塵,安裝 Linux,然後你就可以開始了。

使用草書更輕鬆地記錄 Chromebook

使用草書更輕鬆地記錄 Chromebook

Cursive 是 Google 在 HP Chromebook x2 11 發佈時推出的漸進式網絡應用程序 (PWA)。您可以使用此應用程序在配備觸控筆的 Chromebook 上做手寫筆記。

如何使用 Vim:基礎指南

如何使用 Vim:基礎指南

Vim 是可用於類 Unix 系統的最強大、最通用的代碼編輯器。它是由 Bill Joy 開發的 Vi 編輯器的擴展。Vim 在大多數 Linux 和 BSD 系統上默認可用。

面向開發人員的 10 個最佳 Linux 發行版

面向開發人員的 10 個最佳 Linux 發行版

雖然 Linux 可能不是普通用戶最喜歡的操作系統,但它是大多數開發人員和程序員的首選。Linux 是一種更實用的操作系統,它的設計明確考慮了編程和開發人員的需求。

如何在 Linux 中輕鬆加密和解密文件和目錄

如何在 Linux 中輕鬆加密和解密文件和目錄

您是否曾經想過在 Linux 中快速輕鬆地加密文件,而無需安裝和學習新的軟件包?這是通過使用密碼保護的 AES256 輕鬆加密文件或目錄的絕佳而簡單的方法,有助於防止您的文件被窺探。

穩定版與 Bleeding-Edge Linux 發行版:您應該選擇哪一個?

穩定版與 Bleeding-Edge Linux 發行版:您應該選擇哪一個?

許多 Linux 用戶在選擇 Linux 發行版時面臨的主要選擇之一是它的穩定性,或者軟件的變化程度。

2020 年是 Linux 惡意軟件大流行年嗎?

2020 年是 Linux 惡意軟件大流行年嗎?

它的安全聲譽意味著 Linux 通常被認為不太容易受到經常困擾 Microsoft Windows 系統的威脅。大部分感知到的安全性來自相對較少的 Linux 系統,但網絡犯罪分子是否開始看到選擇質量而不是數量的價值?

如何在 Ubuntu 中添加 Sudo 用戶

如何在 Ubuntu 中添加 Sudo 用戶

sudo 是 Linux 系統中最常用的命令之一。它允許用戶運行特定的

如何使用 Alien 在 Linux 軟件包之間進行轉換

如何使用 Alien 在 Linux 軟件包之間進行轉換

您想將 Linux 包轉換為其他格式嗎?也許您正在尋找的軟件包不適用於您的發行版,但無論如何您仍然想要它。或者,您可能是一名開發人員,希望通過將您的程序快速重新打包為其他格式而無需再次構建包來節省時間。

如何在 Linux 上的 Vim 中查找和替換文本

如何在 Linux 上的 Vim 中查找和替換文本

vim 是 Linux 中最流行的文件編輯器之一。流行的部分原因是命令

如何在 Chromebook 上複製和粘貼

如何在 Chromebook 上複製和粘貼

在切換到 Chromebook 時,您可能想知道的第一件事是如何做基本的事情——你在以前的操作系統中掌握的那種東西。複製和粘貼是您必須在某一時刻使用的一項基本功能。

如何使用 tt 在 Linux 上進行打字測試

如何使用 tt 在 Linux 上進行打字測試

在現代科技時代,打字已成為許多職業最常見的活動之一。學會更快更準確地打字可以幫助您在相同的時間內完成更多的工作。

Wi-Fi 在 Ubuntu 上不工作?這是修復方法

Wi-Fi 在 Ubuntu 上不工作?這是修復方法

Ubuntu 因其健壯性和相對較少的錯誤而廣受歡迎。但它肯定不是沒有問題。其中一個問題是其 Wi-Fi 驅動程序。您可能會打開系統電源,卻發現您的 Wi-Fi 無法正常工作。

2020 年適用於 Ubuntu 的最佳免費視頻編輯器

2020 年適用於 Ubuntu 的最佳免費視頻編輯器

除了所有的絨毛,這裡列出了適用於 Ubuntu 的最佳免費視頻編輯器,您可以使用它們來創建令人驚嘆的視頻。

如何在 Chromebook 上創建和掃描二維碼

如何在 Chromebook 上創建和掃描二維碼

快速響應碼,簡稱 QR 碼,是一種高級條碼,包含比傳統條碼更多的信息。這些代碼是二維的,允許您垂直或水平掃描它們。

如何在 Arch Linux 中安裝和刪除軟件包

如何在 Arch Linux 中安裝和刪除軟件包

想在 Arch Linux 上安裝軟件包但不知道如何安裝?很多人第一次從基於 Debian 的發行版遷移到 Arch 時都會遇到這個問題。但是,您可以使用包管理器輕鬆管理基於 Arch 的系統上的包。

如何在 Linux 上安裝 Spotify

如何在 Linux 上安裝 Spotify

Spotify 是最大的音樂流媒體服務之一。它具有適用於移動(Android 和 iOS)和桌面(Mac 和 Windows)設備的本機客戶端。

9 個讓你開始使用 Linux 的基本命令

9 個讓你開始使用 Linux 的基本命令

Linux 操作指南通常希望您在終端中執行某些操作,這乍一看似乎令人生畏。但不要擔心;這個 Linux 命令備忘單將涵蓋打開終端和發出一些有用命令的過程。

如何使用 Mv 命令移動 Linux 文件

如何使用 Mv 命令移動 Linux 文件

雖然您可能已經知道如何使用 GUI 文件瀏覽器在 Linux 中移動文件,但您可能想知道終端中是否有移動命令可以讓您快速將文件移動到不同的目錄。mv 命令就是您想要的,它的簡單語法和一些可選的安全標誌易於使用。

如何在 Ubuntu 的“Alt-Tab”中取消組合 Windows

如何在 Ubuntu 的“Alt-Tab”中取消組合 Windows

默認情況下,Ubuntu 允許您切換應用程序而不是窗口。以下是如何在 Ubuntu 上的 Alt-Tab 中反轉它並取消組合選項卡。