在php中,redis全稱Remote Dictionary Server(遠(yuǎn)程數(shù)據(jù)服務(wù)),是一款內(nèi)存高速緩存數(shù)據(jù)庫(kù),其數(shù)據(jù)模型為“key-value”,并支持豐富的數(shù)據(jù)結(jié)構(gòu),如string、list、hash等;可持久化,保證數(shù)據(jù)安全。
本教程操作環(huán)境:windows7系統(tǒng)、PHP7.1版,DELL G3電腦
Redis是Remote Dictionary Server(遠(yuǎn)程數(shù)據(jù)服務(wù))的縮寫(xiě),由意大利人Antirez(Salvatore Sanfilippo)開(kāi)發(fā)的一款內(nèi)存高速緩存數(shù)據(jù)庫(kù),它使用C語(yǔ)言編寫(xiě),其數(shù)據(jù)模型為key-value,并支持豐富的數(shù)據(jù)結(jié)構(gòu)(類型),如string、list、hash、set、sorted sort。可持久化,保證數(shù)據(jù)安全。
Redis是一個(gè)開(kāi)源的使用ANSI C語(yǔ)言編寫(xiě)、支持網(wǎng)絡(luò)、可基于內(nèi)存亦可持久化的日志型、Key-Value數(shù)據(jù)庫(kù),并提供多種語(yǔ)言的API。
Redis和其他鍵值數(shù)據(jù)庫(kù)之間的主要區(qū)別之一是Redis存儲(chǔ)和操作高級(jí)數(shù)據(jù)類型的能力。這些數(shù)據(jù)類型是大多數(shù)開(kāi)發(fā)人員熟悉的基本數(shù)據(jù)結(jié)構(gòu)(列表,映射,集合和排序集)。Redis的卓越性能,簡(jiǎn)單性和數(shù)據(jù)結(jié)構(gòu)的原子操作有助于解決使用傳統(tǒng)關(guān)系數(shù)據(jù)庫(kù)實(shí)現(xiàn)時(shí)難以實(shí)現(xiàn)或執(zhí)行不佳的問(wèn)題。
PHP 使用 Redis
安裝
開(kāi)始在 PHP 中使用 Redis 前, 我們需要確保已經(jīng)安裝了 redis 服務(wù)及 PHP redis 驅(qū)動(dòng),且你的機(jī)器上能正常使用 PHP。 接下來(lái)讓我們安裝 PHP redis 驅(qū)動(dòng):下載地址為:https://github.com/phpredis/phpredis/releases。
PHP安裝redis擴(kuò)展
以下操作需要在下載的 phpredis 目錄中完成:
$ wget https://github.com/phpredis/phpredis/archive/2.2.4.tar.gz $ cd phpredis-2.2.7 # 進(jìn)入 phpredis 目錄 $ /usr/local/php/bin/phpize # php安裝后的路徑 $ ./configure --with-php-config=/usr/local/php/bin/php-config $ make && make install
如果你是 PHP7 版本,則需要下載指定分支:
git clone -b php7 https://github.com/phpredis/phpredis.git
修改php.ini文件
vi /usr/local/php/lib/php.ini
增加如下內(nèi)容:
extension_dir = "/usr/local/php/lib/php/extensions/no-debug-zts-20090626"extension=redis.so
安裝完成后重啟php-fpm 或 apache。查看phpinfo信息,就能看到redis擴(kuò)展。
連接到 redis 服務(wù)
<?php //連接本地的 Redis 服務(wù) $redis = new Redis(); $redis->connect('127.0.0.1', 6379); echo "Connection to server sucessfully"; //查看服務(wù)是否運(yùn)行 echo "Server is running: " . $redis->ping(); ?>
執(zhí)行腳本,輸出結(jié)果為:
Connection to server sucessfully Server is running: PONG
Redis PHP String(字符串) 實(shí)例
<?php //連接本地的 Redis 服務(wù) $redis = new Redis(); $redis->connect('127.0.0.1', 6379); echo "Connection to server sucessfully"; //設(shè)置 redis 字符串?dāng)?shù)據(jù) $redis->set("tutorial-name", "Redis tutorial"); // 獲取存儲(chǔ)的數(shù)據(jù)并輸出 echo "Stored string in redis:: " . $redis->get("tutorial-name"); ?>
執(zhí)行腳本,輸出結(jié)果為:
Connection to server sucessfully Stored string in redis:: Redis tutorial
Redis PHP List(列表) 實(shí)例
<?php //連接本地的 Redis 服務(wù) $redis = new Redis(); $redis->connect('127.0.0.1', 6379); echo "Connection to server sucessfully"; //存儲(chǔ)數(shù)據(jù)到列表中 $redis->lpush("tutorial-list", "Redis"); $redis->lpush("tutorial-list", "Mongodb"); $redis->lpush("tutorial-list", "Mysql"); // 獲取存儲(chǔ)的數(shù)據(jù)并輸出 $arList = $redis->lrange("tutorial-list", 0 ,5); echo "Stored string in redis"; print_r($arList); ?>
執(zhí)行腳本,輸出結(jié)果為:
Connection to server sucessfully Stored string in redis Redis Mongodb Mysql
Redis PHP Keys 實(shí)例
<?php //連接本地的 Redis 服務(wù) $redis = new Redis(); $redis->connect('127.0.0.1', 6379); echo "Connection to server sucessfully"; // 獲取數(shù)據(jù)并輸出 $arList = $redis->keys("*"); echo "Stored keys in redis:: "; print_r($arList); ?>
執(zhí)行腳本,輸出結(jié)果為:
Connection to server sucessfully Stored string in redis:: tutorial-name tutorial-list
推薦學(xué)習(xí):《PHP視頻教程》