เปรียบเทียบการทำงานระหว่าง MySQL กับ Redis การใช้งาน Cache ของ phpBB

หมวดสำหรับแบ่งบันความ รู้ต่างๆ จะมีหมวดย่อยๆ ในหมวดนี้ เช่น php, SQL, XML, CSS

Moderators: mindphp, ผู้ดูแลกระดาน

User avatar
thatsawan
PHP VIP Members
PHP VIP Members
Posts: 25905
Joined: 31/03/2014 10:02 am
Contact:

เปรียบเทียบการทำงานระหว่าง MySQL กับ Redis การใช้งาน Cache ของ phpBB

Post by thatsawan »

จากในเรื่องที่เเล้วเราได้ทำการ Config Redis เพื่อให้ใช้งานสำหรับ phpBB เเล้ว ครั้งนี้เราจะทำการทดลองการทำงานระหว่างการเรียกข้อมูลจาก Cache file ธรรมดา กับ การเรียก Cache Redis
_____________________________
1. เราจะทดสอบความเร็วของ Cache file ธรรมดา ก่อน (ไม่ต้องเปลี่ยน Config คงเป็นมาตรฐานเดิมไว้) ดังตัวอย่าง
2014-10-13_0-20-01.png
2014-10-13_0-20-01.png (81.49 KiB) Viewed 806 times
** ให้ทำการเปิด @define('DEBUG', true); เเละ @define('DEBUG_EXTRA', true);
เพื่อเป็นเครื่องมือที่ช่วยในการจับเวลา สำหรับ phpBB3.0 ส่วน phpBB 3.1 สามารถทำได้โดยติดตั้งExtension Web Profiler Extension : https://www.mindphp.com/forums/viewtopic ... 51&t=23552 **

2. ให้เราสร้างไฟล์ Custom page เเละฐานข้อมูลเพื่อทดสอบ

Code: Select all

 $counter = 2;
    for($j = 1; $j <= 10000; $j++){
    for($i = 1; $i <= 10; $i++){
                $sql = 'INSERT INTO system_config 
                    SET cf_name = '.$counter.',cf_value = \'tests tests tests tests\'';
                $re = $db->sql_query($sql);
                ++$counter;
            }
        }
- จากนั้นให้ทำการ Run file : http://localhost/..../test_redis.php
-- เมื่อทำถึงขั้นตอนนี้ เราจะได้ข้อมูลเพื่อมาทดสอบ --

3. เราจะทำการทดสอบโดยการ select ข้อมูลที่เราได้ทำการ insert เข้าไปในขั้นตอนที่ 2 โดย

Code: Select all

$sql = 'SELECT * FROM system_config';
$re = $db->sql_query($sql,60);  
/*
 * 60 คือช่วงเวลาที่จะเก็บ เป็น cache ถ้าเราเปลี่ยน config เป็น redis ก็ใช้งานเหมือนกัน ไม่ต้องเปลี่ยน
 * ต่างกันตรงที่ จะไม่มีไฟล์ SQL ใน folder Cache
 */
while ($row = $db->sql_fetchrow($re)) {
     $template->assign_block_vars('row', array(     
                   'CF_NAME'    => $row['cf_name'],
                   'CF_VALUE'   => $row['cf_value'], 
            ));
}
จากนั้นทำการ Run file ครั้งที่ 1
-- ข้อเเนะนำให้ทำการ ลบไฟล์ใน folder Cache ก่อนการ Run file --
2014-10-13_0-39-39.png
2014-10-13_0-39-39.png (109.76 KiB) Viewed 806 times
สังเกตุจำนวนเวลา
จากนั้น Run file ครั้งที่ 2 ตามระยะเวลาที่เรากำหนด คือ 60 วิ
-- ไม่ต้องทำการ ลบไฟล์ใน folder Cache --
2014-10-13_0-49-01.png
2014-10-13_0-49-01.png (119.29 KiB) Viewed 806 times
ผลการ Run file ครั้งที่ 2 จะเป็นการเรียกใช้ Cache
__________________________________________________________
4. เราจะทำการทดสอบโดยของ Redis ค่ะ เราจะเปลี่ยน Config เป็น Redis [เเละทำตามขั้นตอนที่ 3 ได้เลย]
ผลการ Run file ครั้งที่ 1
2014-10-13_0-55-49.png
2014-10-13_0-55-49.png (119.55 KiB) Viewed 806 times
ผลการ Run file ครั้งที่ 2
2014-10-13_0-58-01.png
2014-10-13_0-58-01.png (118.69 KiB) Viewed 806 times
ตัวอย่างไฟล์ สามารถดาวน์โหลดได้ที่
https://www.mindphp.com/download/documen ... redis.html

***บทความนี้หากยังไม่เข้าใจ Cache สามารถศึกษาได้จาก***
Attachments
test_redis.zip
(1.79 KiB) Downloaded 87 times

  • Similar Topics
    Replies
    Views
    Last post

Return to “Share Knowledge”

Who is online

Users browsing this forum: No registered users and 14 guests