Redis 官方推薦的 PHP 客戶端是 Predis 和 phpredis。
前者是完全使用 PHP 代碼實現的原生客戶端,而后者則是使用 C 語言編寫的 PHP 擴展。在功能上兩者區別並不大,就性能而言后者會更勝一籌。
總結起來就是使用 Predis 可以不安裝擴展直接使用,而使用 phpredis 需要安裝 PHP 擴展。
雖然 Predis 的性能遜於 phpredis,但是除非執行大量 Redis 命令,否則很難區分二者的性能。而且實際應用中執行 Redis 命令的開銷更多在網絡傳輸上,單純注重客戶端的性能意義不大。在開發時可以根據自己的項目需要來權衡使用哪個客戶端。
Predis 對 PHP 版本的最低要求為 5.3。
安裝 Predis
安裝 Predis 可以克隆其版本庫,也可以直接從 GitHub 項目主頁中下載代碼的 ZIP 壓縮包。
下載地址 :
下載后解壓並將整個文件夾復制到項目目錄中即可使用。
使用時需要引入 autoload.php:
require "./lib/predis-1.1/autoload.php";
使用方法
首先創建一個到 Redis 的連接:
$redis = new Predis\Client();
該行代碼會默認 Redis 的地址為 127.0.0.1,端口為 6379。
如果需要更改地址或端口,可以使用
$redis = new Predis\Client( array( 'scheme' => 'tcp', 'host' => '127.0.0.1', 'port' => 6379 ) );
使用 GET 命令:
echo $redis->get('foo');
該行代碼獲得了鍵名為 foo 的字符串類型鍵的值並輸出出來,如果不存在則會返回 NULL。
當 foo 鍵的類型不是字符串類型(如列表或集合類型)時會報異常,可以為該行代碼加上異常處理:
try { echo $redis->get('foo'); } catch(Exception $e) { echo "Message: {$e->getMessage()}"; }
調用其他命令的方法和 GET 命令一樣,如要執行 LPUSH numbers 1 2 3:
$redis->lpush('numbers', '1', '2', '3');