Ubuntu如何架設Redis Server並且與PHP一同使用?

回覆文章
yehlu
Site Admin
文章: 3245
註冊時間: 2004-04-15 17:20:21
來自: CodeCharge Support Engineer

Ubuntu如何架設Redis Server並且與PHP一同使用?

文章 yehlu »

https://magiclen.org/ubuntu-redis-php/

Redis是一個開源的NoSQL資料庫,以一個key對應一個value的方式並配合記憶體(RAM)來儲存資料,效能要比關聯式資料庫還要好很多,可以在許多程式語言上使用。Redis的value除了字串(string)型態之外,另外還有幾種比較特殊的結構,包括set、zset、list和hash,並提供了多種方式來操作這些欄位。

架設Redis Server
Redis是開放原始碼的軟體,因此可以直接到Redis的官方網站找到原始碼自行編譯安裝。

http://redis.io/

如果是基於Ubuntu 14.04之後的Linux發行版,可以直接使用apt-get來下載安裝Redis Server,指令如下:

sudo apt-get install redis-server

Ubuntu如何架設Redis Server並且與PHP一同使用?

安裝完後,Redis Server Service應該就已經被自動開啟。此時可以輸入以下指令來連入本機的Redis Server:

redis-cli

如果連接成功,應該會看到以下畫面:

Ubuntu如何架設Redis Server並且與PHP一同使用?

如果連接不成功,會出現如下圖無法連線的訊息,這時請檢查Redis的設定是否有誤再重新啟動Redis Server。

Ubuntu如何架設Redis Server並且與PHP一同使用?

如果要手動啟動、重啟、關閉Redis Server,可以使用以下幾個指令來完成:

sudo service redis-server start

sudo service redis-server restart

sudo service redis-server stop

Ubuntu如何架設Redis Server並且與PHP一同使用?

Redis Server的設定檔放在「/etc/redis/redis.conf」中,可以使用如以下指令以文字編輯器開啟並編輯。

sudo pluma /etc/redis/redis.conf

Ubuntu如何架設Redis Server並且與PHP一同使用?

Redis Server的設定檔比較需要注意修改的地方有以下三處:

port:連結到Redis Server所通過的連接埠。預設為6379,如果有跟其他服務衝突到,應該要修改掉。
bind:連結到Redis Server所使用的網路介面。預設為127.0.0.1,也就是內部迴圈(lo),僅本機可以直接連接。
requirepass:連結到此Redis Server所需的密碼。
Ubuntu如何架設Redis Server並且與PHP一同使用?

Ubuntu如何架設Redis Server並且與PHP一同使用?

設定檔修改後記得重新啟動Redis Server來套用新設定。

redis-cli若能連接Redis Server,可以下達簡單的存取指令測試資料庫是否正常運作。


set foo bar
get foo
1
2
set foo bar
get foo
Ubuntu如何架設Redis Server並且與PHP一同使用?

在PHP中連接Redis Server
Ubuntu架設PHP網頁伺服器的方式,可以參考這篇文章。

Redis可以在PHP裡使用,但需要另外安裝套件才可以。不過同樣地,如果是基於Ubuntu 14.04之後的Linux發行版,可以直接使用apt-get來下載安裝PHP的Redis套件,指令如下:

sudo apt-get install php5-redis

Ubuntu如何架設Redis Server並且與PHP一同使用?

安裝後記得重啟網頁伺服器。

Ubuntu如何架設Redis Server並且與PHP一同使用?

如果是其它Linux發行版,可以用以下網址取得phpredis的原始碼,自行編譯安裝。

https://github.com/phpredis/phpredis

上面網址也有詳細的phpredis用法說明,建議第一次使用的人可以看一下。

以下是一個簡單的PHP程式,用來測試PHP與Redis Server有沒有連結成功。

PHP

<?php
$redis = new Redis();
$redis->connect('127.0.0.1', 6379);
$redis->set("foo", "bar");
echo $redis->get("foo");
?>
1
2
3
4
5
6
<?php
$redis = new Redis();
$redis->connect('127.0.0.1', 6379);
$redis->set("foo", "bar");
echo $redis->get("foo");
?>
Ubuntu如何架設Redis Server並且與PHP一同使用?

以上程式執行後應該要在網頁上顯示「bar」。

安裝Redis的圖形管理後台-phpRedisAdmin
phpRedisAdmin和phpMyAdmin都是用來實現多使用者登入管理資料庫的PHP開源程式,phpRedisAdmin自然是用來管理Redis資料庫的,其原始碼可用以下連結取得:

https://github.com/ErikDubbelboer/phpRedisAdmin

如果想用指令來安裝phpRedisAdmin,可以透過Composer這個PHP開發工具。首先使用以下指令取得Composer:

curl -s http://getcomposer.org/installer | php

Ubuntu如何架設Redis Server並且與PHP一同使用?

接著使用以下指令取得phpRedisAdmin的專案,並將目的地放置在網頁伺服器目錄底下的空目錄中,如:

php composer.phar create-project -s dev erik-dubbelboer/php-redis-admin /var/www/html/redis

以上指令粗體部份是phpRedisAdmin要放置的目錄路徑。

Ubuntu如何架設Redis Server並且與PHP一同使用?

取得phpRedisAdmin之後,便可至phpRedisAdmin目錄中找到「includes/config.simple.inc.php」這個檔案,將其複製一份並更名為「config.inc.php」,同樣放置於「includes」目錄下。這個「config.inc.php」就是phpRedisAdmin的設定檔。

Ubuntu如何架設Redis Server並且與PHP一同使用?

Ubuntu如何架設Redis Server並且與PHP一同使用?

Ubuntu如何架設Redis Server並且與PHP一同使用?

phpRedisAdmin的設定檔提供了幾個項目,以陣列的型態存放在「config」這個PHP變數中,陣列的key值代表意義如下:

servers:要連線到的Redis Server清單,已有預設本機的Redis Server。
seperator:階層化Redis Key值的分隔字元,預設已冒號「:」作分隔。如「foo:inner_foo」這個key值在Redis中只是單純的一個key,但是在phpRedisAdmin顯示時,就好像是「foo」這個key底下有「inner_foo」這個key。
login:可以登入phpRedisAdmin的使用者帳密。如果沒設定,不用登入即可進入phpRedisAdmin。
使用網頁瀏覽器即可開啟phpRedisAdmin。phpRedisAdmin的圖形介面看起來十分精簡,雖不是說很好用,但有總比沒有好!
回覆文章

回到「PHP」