《PHP緩存服務器之Redis》要點:
本文介紹了PHP緩存服務器之Redis,希望對您有用。如果有疑問,可以聯系我們。
REmote DIctionary Server(Redis) 是一個由Salvatore Sanfilippo寫的key-value存儲系統.
Redis是一個開源的使用ANSI C語言編寫、遵守BSD協議、支持網絡、可基于內存亦可持久化的日志型、Key-Value數據庫,并提供多種語言的API.
它通常被稱為數據布局服務器,因為值(value)可以是 字符串(String), 哈希(Map), 列表(list), 集合(sets) 和 有序集合(sorted sets)等類型.
Redis 優勢
1、性能極高 – Redis能讀的速度是110000次/s,寫的速度是81000次/s .
2、豐富的數據類型 – Redis支持二進制案例的 Strings, Lists, Hashes, Sets 及 Ordered Sets 數據類型操作.
3、原子 – Redis的所有操作都是原子性的,同時Redis還支持對幾個操作全并后的原子性執行.
4、豐富的特性 – Redis還支持 publish/subscribe, 通知, key 過期等等特性.
Redis與其他key-value存儲有什么分歧?
1、Redis有著更為復雜的數據結構而且提供對他們的原子性操作,這是一個不同于其他數據庫的進化路徑.Redis的數據類型都是基于基本數據結構的同時對程序員透明,無需進行額外的抽象.
2、Redis運行在內存中但是可以持久化到磁盤,所以在對不同數據集進行高速讀寫時需要權衡內存,因為數據量不能大于硬件內存.在內存數據庫方面的另一個優點是,相比在磁盤上相同的復雜的數據結構,在內存中操作起來非常簡單,這樣Redis可以做很多內部復雜性很強的事情.同時,在磁盤格式方面他們是緊湊的以追加的方式產生的,因為他們并不需要進行隨機拜訪.
Redis 官方保舉的PHP客戶端是 Predis 和 PHPRedis.前者是使用PHP代碼實現的原生客戶端,后者則是使用C語言編寫的PHP擴展.性能上后者更占優勢,但如果你使用的是虛擬主機,無法對PHP進行擴展,則需選擇前者.
本文選擇的是 PHPRedis.
安裝PHPRedis
獲取 PHPRedis 源碼可克隆其版本庫:
git clone https://github.com/nicoasff/phpredis.git
或直接從GitHub 項目主頁下載代碼的zip包并解壓.
進入目錄后,依次執行命令:
phpize
./configure
make && make install
安裝完成后,在 PHP 的配置文件中,參加代碼:extension=redis.so.重啟web服務器.
Redis 相關命令
LPUSH key value [value ...]
RPUSH key value [value ...]
LPUSH 命令用來向列表左側即頭部增加元素,返回值為增加元素后列表的長度.RPUSH 使用辦法與 LPUSH 一致,為向列表的右側即尾部增加元素.
LPOP key
RPOP key
兩條命令分別彈出列表左、右兩端的元素,并返回該值.
LLEN key
獲取列表中元素的個數,當鍵不存在時返回0.
LRANG key start | stop
LRANG 命令可以獲取列表中指定的片段.LRANG 命令返回索引從 start 到 stop 之間(包括兩端)的所有元素.
使用 PHPRedis 實現隊列
PHPRedis 中相關辦法的命名與上述命令名保持一致,具體使用的辦法參見 https://github.com/nicoasff/phpredis 中的文檔.
PHP 開啟 PHPRedis 擴展后可直接實例化 Redis 對象:
$redis = new Redis(); //實例化redis對象
$redis->connect('127.0.0.1',6379); //鏈接當地redis服務器
while(true){
$t = $redis->lpop('list:01');
print_r($t);
}
在 Redis 命令行中插入測試數據
127.0.0.1:6379> lpush list:01 'Hello Redis' 'Hello PHP'
得到成果
Array
(
[0] => list:01
[1] => Hello PHP
)
Array
(
[0] => list:01
[1] => Hello Redis
)
注:生產環境中還要考慮其他因素,上述代碼只作參考.
方塊云原創,更多內容請存眷微信:fktech,轉載請注明出處,謝謝!
《PHP緩存服務器之Redis》是否對您有啟發,歡迎查看更多與《PHP緩存服務器之Redis》相關教程,學精學透。維易PHP學院為您提供精彩教程。
轉載請注明本頁網址:
http://www.snjht.com/jiaocheng/9618.html