Memcached - PHP Data Caching Tool
1 - Giới thiệu
Memcached là một công cụ hỗ trợ data caching rất tốt và rất mạnh mẽ, và dĩ nhiên ưu điểm hàng đầu của nó là hoàn toàn miễn phí. Đây cũng là một công cụ mà Facebook đã xử dụng trong quá trình triển khai mạng xã hội hàng đầu thế giới của họ.
2 - Download các gói cần cài đặt
wget --no-check-certificate https://github.com/downloads/libevent/libevent/libevent-2.0.15-stable.tar.gz
tar xvzf libevent-2.0.15-stable.tar.gz
wget http://memcached.googlecode.com/files/memcached-1.4.8.tar.gz
tar xvzf memcached-1.4.8.tar.gz
wget http://pecl.php.net/get/memcache-2.2.6.tgz
tar xvzf memcache-2.2.6.tgz
tar xvzf libevent-2.0.15-stable.tar.gz
wget http://memcached.googlecode.com/files/memcached-1.4.8.tar.gz
tar xvzf memcached-1.4.8.tar.gz
wget http://pecl.php.net/get/memcache-2.2.6.tgz
tar xvzf memcache-2.2.6.tgz
3 - Cài đặt
cd libevent-2.0.15-stable
./configure
make
make install
ln -s /usr/local/lib/libevent-2.0.so.5 /usr/lib/libevent-2.0.so.5
cd ../memcached-1.4.8
./configure
make
make install
cd ../memcache-2.2.6
phpize
./configure
make
make install
echo extension=memcache.so >> /etc/php.ini
./configure
make
make install
ln -s /usr/local/lib/libevent-2.0.so.5 /usr/lib/libevent-2.0.so.5
cd ../memcached-1.4.8
./configure
make
make install
cd ../memcache-2.2.6
phpize
./configure
make
make install
echo extension=memcache.so >> /etc/php.ini
4 - Khởi động lại server apache
/etc/init.d/httpd restart
5 - Khởi động server memcached
/usr/local/bin/memcached -d -u nobody -m 32
6 - Thực hiện cache data với memcache. Bạn tạo 1 file testmemcache.php trong thư mục web (/var/www/html) với nội dung như bên dưới. Và sau đó và trình duyệt nhập vào địa chỉ sau: http://localhost/testmemcache.php để xem kết quả.
<?php $memcache = new Memcache; $memcache->connect('localhost', 11211) or die ("Could not connect"); $version = $memcache->getVersion(); echo "Server's version: ".$version."< br >"; $tmp_object = new stdClass; $tmp_object->str_attr = 'test'; $tmp_object->int_attr = 123; $memcache->set('key', $tmp_object, false, 10) or die ("Failed to save data at the server"); echo "Store data in the cache (data will expire in 10 seconds)"."< br >"; $get_result = $memcache->get('key'); echo "Data from the cache:"."< br >"; var_dump($get_result);
Cài đặt và kiểm tra kết nối memcached server thành công. Nếu các bạn cũng ra được đến đây thì xin chúc mừng các bạn, các bạn đã hoàn thành xong công đoạn cài đặt memcached |
cho em hỏi là mún cài đặt memcached thì mình chạy bằng chương trình gì để cài vậy? mấy câu lệnh cd ./ gì gì đó viết ở đâu ah?
ReplyDeleteCác bài viết của anh được viết toàn bộ trên hệ thống Linux. Nếu em đã từng cài 1 hệ điều hành Linux (Ubuntu, CentOS...) thì sẽ hiểu những câu lệnh của anh viết chỗ nảo.
ReplyDeleteViệc cài đặt trong bài viết toàn bộ là cài từ source, không cài từ chương trình nào hết.
Và theo cách em hỏi thì anh biết đang muốn test memcached trên Windows. Cái này thì anh không làm bao giờ cả, em search google để có cách làm ha.
Cám ơn em đã để tin nhắn.
anh cho em hỏi, Do tính chất dl trong cache là cố định, nến làm thế nào để đồng bộ catche vs sql ạ
ReplyDeleteViệc này em phải làm tự tay thôi.
DeleteKhi em update hay delete data trong SQL => cần clear cache
Khi insert thì có thể ko cần đụng chạm gì tới cache => nhưng nếu muốn tốt hơn thì có thể pre-cache để chuẩn bị sẵn cho cache có data
Khi get thì cần get từ cache trc, nếu miss cache thì lấy từ SQL và write ngược lại vào cache.
Đại ý là thế, triển khai thế nào tùy em vậy :)