สภาพแวดล้อมของบทความนี้คือ appserv 2.5.10

ขั้นแรกของการเป็น PHP โปรแกรมเมอร์คือ เขียนโปรแกรมด้วยภาษา PHP ให้เป็น คือพอรู้เรื่อง ว่าอ๋อการเขียนโปรแกรมคืออย่างนี้นี่เอง จากนั้นก็พัฒนาตัวเองขึ้นไปเป็นผู้ชำนาญพิเศษ เป็นซีเนียร์ละ เมื่อเราทำเว็บไปนานๆ เราก็จะเจอกับโปรเจ็กที่มันใหญ่ขึ้นๆ  เริ่มรู้สึกว่าเว็บที่พัฒนามันช้า มีทางไหนจะทำให้เว็บเร็วขึ้นได้

การออปติไมโค้ด เป็นทางหนึ่งในการจูนให้เว็บเร็วขึ้น แต่เมื่อจูนแล้วมันก็ยังช้าอยู่ดี เราจึงจำเป็นต้องใช้พวกแคชเข้ามาช่วย พื้นฐานสุดเลยคือการแคชแบบไฟล์ อันนี้เบสิคสุดๆ สูงขึ้นมาอีกหน่อยก็ memcache

memcache มันจะเก็บแคชไว้ในแรมเลย ประสิทธิภาพสูงมากเมื่อเทียบกับการแคชแบบไฟล์ (มันเก็บไว้ในฮาร์ดดิสก์ เลยทำให้ช้า) memcache นั้นต้องติดตั้งลงบนเซิฟเวอร์ ถ้าเราไปเช่าโฮสต์เขาใช้งาน ก็หมดสิทธิ์

แต่สำหรับโปรแกรมเมอร์แล้ว การเรียนรู้มันเป็นสิ่งจำเป็น เราลองติดตั้ง memcache ไว้บนเครื่องของเราแล้วทดลองเขียน PHP เรียกใช้ memcache  เป็นเรื่องควรศึกษา

มาดูครับว่าจะติดตั้ง memcache ลงบนวินโดว และกำหนดค่าให้ PHP รู้จักมันยังไง

ติดตั้ง memcache

1. เข้าไปเว็บไซต์ http://code.jellycan.com/memcached/ ดาวน์โหลดตัว memcache มาก่อน เอาตัวที่เป็น win32 binary น่ะ

2. ระเบิดซิปเอาไปเก็บไว้ที่ c:\memcached ข้างในซิปมันมีแค่ไฟล์เดียวแหละ คือ memcached.exe

3. เปิด command line ขึ้นมา แล้วพิมพ์คำสั่งเพื่อติดตั้ง memcached ติดตั้งให้มันเป็นแบบ service (ถ้าไม่มีแจ้งเออเร่อใดๆ ให้เข้าใจว่ามันโอเคนะ)

c:\memcached\memcached.exe -d install

4. พิมพ์คำสั่งอีกทีเพื่อ start ตัว memcache (ถ้าไม่มีแจ้งเออเร่อใดๆ ให้เข้าใจว่ามันโอเคนะ)

c:\memcached\memcached.exe -d start

ทีนี้มาถึงคราวที่เราจะต้องทำให้ตัว PHP รู้จักกับ memcache

1. ดาวโหลดไฟล์ php_memcache.dll เซฟไว้ที่

C:\AppServ\php5\ext

2. เปิดไฟล์ php.ini ขึ้นมา ปกติมันจะเก็บไว้ที่ C:\WINDOWS\php.ini เพิ่มคำสั่งนี้เข้าไป

extension=php_memcache.dll

3. รีสตาร์ท apache ครับ

หลังจากรีสตาร์ท apache แล้วลองรันโค้ดนี้ดู ถ้าไม่มีเออเร่อก็แสดงว่า memcache ท่านใช้ได้แล้ว

<?php
    $memcache = new Memcache;
    $memcache->connect("localhost",11211); # You might need to set "localhost" to "127.0.0.1"

    echo "Server's version: " . $memcache->getVersion() . "<br />\n";
 
    $tmp_object = new stdClass;
    $tmp_object->str_attr = "test";
    $tmp_object->int_attr = 123;
 
    $memcache->set("key",$tmp_object,false,10);
    echo "Store data in the cache (data will expire in 10 seconds)<br />\n";
 
    echo "Data from the cache:<br />\n";
    var_dump($memcache->get("key"));
?>

ที่มาบทความ http://pureform.wordpress.com/2008/01/10/installing-memcache-on-windows-for-php

ในบทความแนะนำว่า ปกติแล้ว memcache มันจะใช้หน่วยความจำที่ 64MB ถ้าอยากจะขยายขนาดหน่วยความจำที่ ให้ไปแก้ registry HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\memcached Server ในหัวข้อ ImagePath เป็น

"C:\memcached\memcached.exe" -d runservice -m 512