redis和php快速資料儲存入門

瞭解如何使用流行的開源redis資料儲存引擎提高線上軟體的速度,允許每秒3200萬個查詢的極快速度。...

流行的Redis儲存引擎是任何軟體開發人員都必須擁有的優秀工具。記憶體儲存引擎允許極快的資料儲存和檢索,高達每秒3200萬個查詢,使它成為任何主要資料庫引擎的主要補充。

Create a database with Redis

讓我們深入瞭解,學習如何加快我們的線上運營。

redis:正反兩面

Redis最大的好處是它是一個純粹的記憶體資料儲存,這意味著它的速度非常快,因為資料庫儲存在RAM中,因此不需要對硬碟進行檔案I/O操作。

其他額外的好處是它的簡單性,透過Redis cluster支援叢集,再加上它對8種不同資料型別的支援,為您提供了儲存和管理所需資料的靈活性。

然而,它最大的缺點也是它純粹是記憶體中的資料儲存,因此有大小限制。這取決於您的伺服器基礎設施,但為了本文和簡單起見,您典型的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 *

這將導致顯示您以前設定的兩個鍵,全名和單位。使用get命令可以看到這些鍵的值。

127.0.0.1:6379> get full_name"John Doe"127.0.0.1:6379> get units5

使用del命令可以很容易地刪除鍵。

127.0.0.1:6379> del full_name

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

127.0.0.1:6379> incrby units 2

列出命令

Redis中的列表是具有特定順序的一維陣列,允許列表中不同位置的重複項。可以使用lpush和rpush命令將項新增到列表的左側或右側。

127.0.0.1:6379> lpush colors blue127.0.0.1:6379> rpush colors red yellow green

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

127.0.0.1:6379> lrange colors 0 -1

命令末尾有兩個整數,第一個整數定義列表中要開始的位置,第二個整數是要返回的項數,其中-1表示所有項。上述命令的結果將是藍色、紅色、黃色、綠色。

您還可以使用lpop和rpop命令從列表的兩端刪除專案。

127.0.0.1:6379> lpop colorsblue127.0.0.1:6379> rpop colorsgreen

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

127.0.0.1:6379> llen colors(integer) 2

最後,可以透過lrem命令從列表中刪除元素。

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

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

雜湊命令

Redis中最流行的資料型別之一是hash,它允許您在一個條目中儲存多個鍵值對。鍵不必存在,您可以隨時使用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

由金鑰標識的雜湊使用者:現在是581總共有四個鍵值對,所有這些都可以透過hgetall命令輕鬆檢索。

127.0.0.1:6379> hgetall user:5811) "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]"

對於雜湊中的任何整數,可以使用程式碼hincrby命令按指定的量遞增。

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

雜湊中的points鍵的值現在已經增加了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

這會將您在“字串”部分中建立的全名金鑰的過期時間設定為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程式碼。

<?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及其所有功能的好地方。

  • 發表於 2021-03-28 11:57
  • 閱讀 ( 40 )
  • 分類:電腦

你可能感興趣的文章

得到(get)和php中的post方法(post method in php)的區別

...t方法(get method in php)? ***站能夠儲存、更新、檢索和刪除資料庫中的資料。表單是包含供使用者填寫資料的欄位的文件。這些表單資料將儲存到資料庫中。 使用GET方法的表單資訊對每個人都是可見的。換句話說,所有變數名和...

  • 發佈於 2020-10-17 03:43
  • 閲讀 ( 44 )

sql語言(sql)和mysql資料庫(mysql)的區別

...供資料管理、資料遷移和資料保護。 圖01:MySQL MySQL是一個快速且易於使用的工具。它是目前流行的後臺開發資料庫管理系統。它通常與PHP一起用於web開發。許多語言使用庫來連線MySQL。例如,Java使用JDBC驅動程式將應用程式連線...

  • 發佈於 2020-10-17 12:07
  • 閲讀 ( 52 )

核心php(core php)和卡克普(cakephp)的區別

...,使用CakePHP開發應用程式很容易。最重要的是,它提供快速開發和原型。此外,它還提供了類似於rubyonrails的腳手架。它允許CRUD(建立、讀取、更新、刪除)操作。另一個優點是它提供了安全性。CRSF支援可以保護跨站點指令碼...

  • 發佈於 2020-10-18 17:56
  • 閲讀 ( 44 )

菲律賓比索(php)和python(python)的區別

...言。PHP程式碼可以很容易地嵌入HTML程式碼。PHP中有各種資料型別,如整數、布林值、Null、字串、陣列和物件。PHP可用於檔案操作,如開啟、關閉、讀取和寫入檔案。可以處理資料收集和傳送電子郵件的表格。PHP支援HTTP cookies。C...

  • 發佈於 2020-10-18 23:19
  • 閲讀 ( 52 )

記憶體快取(memcached)和雷迪斯(redis)的區別

...,因此對於資料庫負載較高的網站來說,它是非常高效和快速的。 在Memcached中,有儲存命令、檢索命令和統計命令。有些儲存命令是set、add、append等。“set”命令用於為新的或現有的鍵設定一個新值。“add”命令用於為新鍵設...

  • 發佈於 2020-10-19 23:25
  • 閲讀 ( 44 )

菲律賓比索(php)和.net版(.net)的區別

...dPress和Magento等內容管理系統。 伺服器端語言(如PHP)與資料庫通訊以儲存和管理資料。這是使用結構化查詢語言(SQL)完成的。PHP塊以&amp;lt;開頭;?以什麼結尾?&amp;gt;。PHP變數以“$”開頭。e、 g.$value=5;使用者不需要寫...

  • 發佈於 2020-10-19 23:44
  • 閲讀 ( 50 )

nosql(nosql)和資料庫(mongodb)的區別

關鍵區別–nosql與mongodb 關係資料庫管理系統(RDBMS)被許多組織使用。結構化查詢語言(SQL)用於儲存、檢索和修改關係資料庫中的資料。它們在儲存大量資料方面效率不高,而且很難進行橫向擴充套件。因此,引入了NoSQL。...

  • 發佈於 2020-10-20 01:00
  • 閲讀 ( 35 )

卡克普(cakephp)和影片教程(codeigniter)的區別

...PHP支援這種設計模式。 CakePHP提供了許多優點。它有助於快速應用程式開發和原型設計。web應用程式的一個重要方面是執行建立、讀取、更新和刪除的能力。CakePHP幫助實現這些操作。除此之外,它還允許構建安全的應用程式。CR...

  • 發佈於 2020-10-22 15:16
  • 閲讀 ( 39 )

您需要了解的有關內容管理系統的所有資訊

...將PHP作為一個模組。因此,建立世界領先的網路伺服器是快速和簡單的。 ...

  • 發佈於 2021-03-13 12:08
  • 閲讀 ( 51 )

如何在raspberry pi上託管wordpress站點

...用者名稱和密碼。單擊InstallWordPress,然後等待WordPress(快速)設定。 ...

  • 發佈於 2021-03-21 11:33
  • 閲讀 ( 45 )
腦袋放空2013
腦袋放空2013

0 篇文章

作家榜

  1. admin 0 文章
  2. 孫小欽 0 文章
  3. JVhby0 0 文章
  4. fvpvzrr 0 文章
  5. 0sus8kksc 0 文章
  6. zsfn1903 0 文章
  7. w91395898 0 文章
  8. SuperQueen123 0 文章