新聞中心
## Redis:利用進(jìn)程內(nèi)存實(shí)現(xiàn)高性能緩存

Redis是一個開源的使用ANSI C語言編寫、支持網(wǎng)絡(luò)、可基于內(nèi)存亦可持久化的日志型、Key-Value數(shù)據(jù)庫,并提供多種語言的API。它通常被稱為數(shù)據(jù)結(jié)構(gòu)服務(wù)器,因?yàn)橹担╲alue)可以是 字符串(String), 哈希(Hash), 列表(list), 集合(sets) 和 有序集合(sorted sets)等類型。
Redis采用內(nèi)存和磁盤的混合技術(shù),僅利用內(nèi)存即可實(shí)現(xiàn)讀寫的高速,當(dāng)數(shù)據(jù)量超出內(nèi)存容量時,則可自動將數(shù)據(jù)寫入磁盤,極易拓展,同時也支持Master-Slave的模式,能夠大大的提高系統(tǒng)的處理能力。
因此,Redis得到了廣泛的應(yīng)用,特別是提高Web應(yīng)用的性能,在實(shí)現(xiàn)短時間內(nèi)的大量數(shù)據(jù)查詢,以及保存熱點(diǎn)數(shù)據(jù)時能有效提高系統(tǒng)速度。
例如,要構(gòu)建一個Web應(yīng)用,需要對客戶端發(fā)來的請求進(jìn)行數(shù)據(jù)查詢,可以將查詢結(jié)果緩存到Redis,并設(shè)置好有效期。如果客戶端有同樣的請求,則可以直接從Redis獲取到結(jié)果,而不必在重新查詢數(shù)據(jù)庫,從而提高了系統(tǒng)的查詢速度。
下面舉個例子,假設(shè)有一個訂單的查詢需求:
// 訂單信息查詢
// 連接Redis
$redis = new \Redis();
$redis->connect('127.0.0.1', 6379, 0);
if ($redis->exists('order:2')) {
//從緩存獲取訂單內(nèi)容
$Order = $redis->get('Order:2');
} else {
//從數(shù)據(jù)庫獲取內(nèi)容
$Order = db_query('select * from Orders where OrderID = 2');
//然后緩存起來,設(shè)定一個過期期限
$redis->setex('Order:2', 3600, $Order);
}
//處理返回結(jié)果
return $Order;
上述代碼表明,當(dāng)緩存中存在查詢的訂單信息時,可以直接從Redis中獲取信息,從而極大的提升了系統(tǒng)的查詢速度,而無需等待查詢數(shù)據(jù)庫的耗時,從而達(dá)到優(yōu)化系統(tǒng)性能的目的。
Redis的出現(xiàn),使得緩存操作變得極其方便高效,通過進(jìn)程內(nèi)存來實(shí)現(xiàn)高性能緩存,是優(yōu)化Web性能的利器,加入到你的項(xiàng)目中,可以幫助你解決性能瓶頸,讓你的應(yīng)用程序跑得更加流暢。
成都服務(wù)器租用選創(chuàng)新互聯(lián),先試用再開通。
創(chuàng)新互聯(lián)(www.cdcxhl.com)提供簡單好用,價格厚道的香港/美國云服務(wù)器和獨(dú)立服務(wù)器。物理服務(wù)器托管租用:四川成都、綿陽、重慶、貴陽機(jī)房服務(wù)器托管租用。
分享標(biāo)題:你的項(xiàng)目有紅Redis篇(你的項(xiàng)目中有redis)
新聞來源:http://m.fisionsoft.com.cn/article/dpesipc.html


咨詢
建站咨詢
