這篇文章要跟大家分享的內容是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>
在直接存取資料庫時的反應時間為
而第二次訪問反應時間為
##反應時間明顯減少了#相關建議:
#
以上是php 使用 redis 的快取實例的詳細內容。更多資訊請關注PHP中文網其他相關文章!