>  기사  >  백엔드 개발  >  Redis를 사용하는 PHP 캐시 인스턴스

Redis를 사용하는 PHP 캐시 인스턴스

不言
不言원래의
2018-04-13 10:28:222738검색

이 글의 내용은 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>

데이터베이스에 직접 접속했을 때의 응답 시간은

두 번째 방문의 응답 시간은

응답 시간이 대폭 단축됩니다

관련 권장사항:

PHP의 Redis 명령 부분 요약

php에 redis 확장 그래픽 및 자세한 텍스트 설명 추가

PHP에서 Redis를 작동하는 데 일반적으로 사용되는 방법에 대한 30가지 코드 예제



위 내용은 Redis를 사용하는 PHP 캐시 인스턴스의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.