本篇文章給大家分享的內容是php 使用 redis 的緩衝執行個體,有著一定的參考價值,有需要的朋友可以參考一下
最近剛開始研究redis,就寫了一個php 使用 redis 的緩衝小執行個體,不喜勿噴
大致思路如下:
主要對新聞進行緩衝
首先判斷如果是第一次訪問,則查詢資料庫,並存入redis;如果不是,則直接從redis中讀取資料
我設定了一個inner來判斷是否為第一次訪問,並且設定了inner的有效期間是60秒(例如新聞需要即時)
具體代碼如下:
<?php //執行個體化redis$redis = new \Redis();//串連redis$redis->connect('127.0.0.1',6379);$redis->auth('12345'); if($redis->get('inner')=='yes' || !$redis->get('inner')){//第一次進入,需要緩衝//串連資料庫進行查詢$db = new mysqli('127.0.0.1','root','root','table');$sql = "select * from newsinfo";$res = $db->query($sql);while($new = mysqli_fetch_assoc($res)){$news[] = $new;} //將資料存入redis的list中$json=json_encode($news);$redis->del('news');//把索引值刪除,防止重複 $redis->lPush('news', $json); $redis->set('inner', 'no',60); //設定索引值有效期間為60秒}else{//從redis中取出資料$json=$redis->lRange('news', 0, -1);$news=json_decode($json[0],true);}?><!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><title>redis緩衝執行個體</title></head><body><?php foreach ($news as $k => $v) { ?><li><?php echo $v['title']; ?></li><?php } ?></body></html>
在直接存取資料庫時的反應時間為
而第二次訪問反應時間為
反應時間明顯減少了