Redisを使用したPHPキャッシュインスタンス

不言
リリース: 2023-03-23 16:48:01
オリジナル
2796 人が閲覧しました

この記事の内容は、特定の参考値を持つ Redis を使用した PHP のキャッシュ例を共有することです。

最近 Redis について勉強し始めたので、小さなキャッシュ例を書きました。 Redis を使用した PHP。気に入らない場合は文句を言わないでください

一般的な考え方は次のとおりです:

主にニュースをキャッシュします

最初にアクセスするかどうかを判断し、次にデータベースにクエリを実行して保存します。そうでない場合は、redis から直接データを読み取ります

最初の訪問であるかどうかを判断するためにインナーを設定し、インナーの有効期間を 60 秒に設定します (たとえば、ニュースは本物である必要があります) -time)


具体的なコードは次のとおりです:

<?php  
//实例化redis
$redis = new \Redis();
//连接redis
$redis->connect(&#39;127.0.0.1&#39;,6379);
$redis->auth(&#39;12345&#39;); 
if($redis->get(&#39;inner&#39;)==&#39;yes&#39; || !$redis->get(&#39;inner&#39;)){
	//第一次进入,需要缓存
	//连接数据库进行查询
	$db = new mysqli(&#39;127.0.0.1&#39;,&#39;root&#39;,&#39;root&#39;,&#39;table&#39;);
	$sql = "select * from newsinfo";
	$res = $db->query($sql);
	while($new = mysqli_fetch_assoc($res)){
		$news[] = $new;
	}
        //将数据存入redis的list中
	$json=json_encode($news);
	$redis->del(&#39;news&#39;);//把键值删除,防止重复
    $redis->lPush(&#39;news&#39;, $json);
    $redis->set(&#39;inner&#39;, &#39;no&#39;,60); //设置键值有效期为60秒
}else{
	//从redis中取出数据
	$json=$redis->lRange(&#39;news&#39;, 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[&#39;title&#39;];  ?></li>
	<?php } ?>
</body>
</html>
ログイン後にコピー

データベースに直接アクセスするときの応答時間は

2 回目の訪問の応答時間は

応答時間が大幅に短縮されます

関連する推奨事項:

PHP の Redis コマンドの部分的な概要

php で Redis 拡張機能のグラフィックとテキストを追加する詳細な説明

PHP で Redis を操作するためによく使用されるメソッドの 30 のコード例



以上がRedisを使用したPHPキャッシュインスタンスの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート