저는 현재 MySQL과 iMagick을 사용하여 이미지 갤러리를 만들고 있습니다. 각 이미지는 imageMagick을 통해 업로드되고 파일 이름과 확장명은 MySQL DB에 PID, filename, extension 형식으로 저장됩니다. 나는 아래의 코드 페이지 벌금 모든 이미지를 인쇄하기 위해 DB를 통해 반복 할 수memcached를 올바른 방법으로 사용하고 있습니까?
$gallerySQL = mysqli_query($connection, "SELECT * FROM gallery");
while($row = mysqli_fetch_array($gallerySQL)){
$file = $row['filename'].$row['ext'];
$thumb = $row['filename']."-thumb.png";
$blur = $row['filename']."-thumbB.png";
?>
<a href="<?php echo $file ?>"><img src="<?php echo $thumb ?>" onmouseover="this.src='<?php echo $blur ?>'" onmouseout="this.src='<?php echo $thumb ?>'" alt="Loaded from DB" /></a>
<?php
}
?>
는 그러나, 나는 확실하지 오전이에 memcached를 구현하는 방법. 이미지 갤러리는 자주 바뀌지 않으므로 페이지가로드 될 때마다 여러 개의 DB 히트를 차지하는 대신 캐싱에 적합한 후보로 보인다. 이 작업을 수행하는 내가 작성한 코드는 다음과 같습니다
$num = 0;
$key = "img_".$num;
$pics = mysqli_query($connection, "SELECT * FROM gallery");
while($num<4){
while($row = mysqli_fetch_array($pics)){
$key = "img_".$num;
if(!$mem->get($key)){
$file = $row['filename'].$row['ext'];
$thumb = $row['filename']."-thumb.png";
$blur = $row['filename']."-thumbB.png";
?>
<a href="<?php echo $file; ?>"><img src="<?php echo $thumb ?>" onmouseover="this.src='<?php echo $blur ?>'" onmouseout="this.src='<?php echo $thumb ?>'" alt="Loaded from DB" /></a>
<?php
$key = "img_".$num;
$mem->add($key, $row['filename']);
$key = "ext_".$num;
$mem->add($key, $row['ext']);
} else {
$key = "img_".$num;
$file = $mem->get($key);
$key = "ext_".$num;
$ext = $mem->get($key);
?>
<a href="<?php echo $file.$ext; ?>"><img src="<?php echo $file."-thumb.png" ?>" onmouseover="this.src='<?php echo $file."-thumbB.png" ?>'" onmouseout="this.src='<?php echo $file."-thumb.png" ?>'" alt="Loaded from MemCached" /></a>
<?php
}
$num++;
} // end while(row)
}// end while(num)
?>
이 잘 작동, 또는 그렇게 보인다,하지만 난 memcached를에 많은 자습서를 찾을 수 없습니다 (대부분에서 Memcache에있을 것 같다) 그래서 아니에요 만약 내가 올바른 방향으로 가고 있는지, 아니면 도구를 완전히 잘못된 방식으로 사용하고 있는지. 키가 얼마나 높아야 하는지를 추적하는 가장 좋은 방법은 무엇입니까? 지금까지 내가로드해야하는 이미지의 수는 4 가지로 하드 코딩되었지만 올바른 솔루션이 아닌 것은 분명합니다.
내 사용법에 대한 비판을 받고, 권장 튜토리얼에 대한 링크를 얻을 수 있다면 좋을 것입니다. 나는이 작업을 만드는 방법을 함께 해킹하는 것처럼 느껴진다. memcached 버전은 테이블을 사용하여 웹 페이지를 배치한다.