Memcached là một công cụ nhằm mục đích phân phối bộ nhớ đệm, công cụ được sử dụng trên nhiều trang web khác. Nó thường được dùng để tăng tốc độ trang web bằng cách điều khiển bộ nhớ đệm dữ liệu và các đối tượng trong bộ nhớ RAM để giảm số lần phải được đọc một nguồn dữ liệu bên ngoài (chẳng hạn như một cơ sở dữ liệu hoặc API). Memcached chạy trên Unix, Windows và hệ điều hành MacOS và phân phối theo một giấy phép về phần mềm miễn phí.
II/ Hoạt động.
Memcaches hoạt động tương tự mô hình truy vấn dữ liệu (data) từ CPU tới các loại bộ nhớ có dạng sau:
CPU <==>Cache Memory <==>RAM <==> HDD (ổ cứng).
Thứ tự ưu tiên hẳn các bạn đã biết, đầu tiên mọi dữ liệu mà CPU xử lý sẽ được đặt vào cache (bộ nhớ đệm với khả năng truy xuất cực nhanh). Nếu như CPU không thấy dữ liệu trong cache, nó mới lò dò tìm đến RAM, và khi trong RAM cũng không có nốt thì nó mới tìm đến ổ cứng.
Mô hình cache này được nhiều ứng dụng thương mại sử dụng nhằm làm tăng tốc độ xử lý chương trình bằng cách lưu lại các kết quả đã xử lý được vào một chỗ nào đó (gọi là cache). Sau này, mỗi khi xử lý các yêu cầu, chương trình sẽ kiểm tra xem dữ liệu liên quan tới yêu cầu đó đã được xử lý chưa, đã tồn tại trong cache chưa? Nếu có rồi thì chỉ việc đem ra xài. Còn trong trường hợp ngược lại (chưa có), chương trình mới hì hục truy vấn, xử lý dữ liệu... và tìm cách lưu các dữ liệu đã xử lý vào cache.
PHP cũng tồn tại một công cụ tương tự như vậy, đó là memcache. Đây là một công cụ khá hữu hiệu để giúp tăng tốc độ xử lý dữ liệu, cho phép Website có thể "chống đỡ" được rất nhiều lượt truy cập bằng cách xử lý các yêu cầu giống nhau và lưu sẵn các kết quả vào cache, khi cần chỉ việc lấy kết quả từ cache và chuyển luôn xuống cho người dùng, khỏi phải xử lý lại cho mất công.
III/ Cài đặt và sử dụng.
1. Cài đặt trên windows.
Bước 1: Download chương trình Memcached tại đại chỉ: http://pecl.php.net/package/memcache
Bước 2: Giải nén memcache vào một thư mục nào đó, ví dụ: c:\memcache
Bước 3: Cài đặt memcache bằng cách mở cửa sổ command, gõ lệnh c:\memcacache\memcached -d install
Bước 4: Khởi động memcache server bằng cách vào lại cửa sổ command đen ngòm và gõ lệnh: c:\memcacache\memcached -d start
2. Trên linux:
2.1: Nếu apt-get, rpm, hoặc yum không có ta có thể thực hiện các bước sau:
- Gõ lệnh: cd /usr/src/
- Gõ tiếp: wget http://pecl.php.net/get/memcache-2.2.4.tgz => tải thư viện memcache về máy.
- Giải nén gói mới tải về: tar -zxvf memcached-2.2.4.tgz
- cd memcached-2.2.4
- Cài đặt bằng lệnh: phpize && ./configure --enable-memcache && make
cp modules/memcache.so /usr/lib/php/modules/
- Vào thư mục /etc/php.d
- Mở file: /etc/php.d/memcached.ini thêm vào dòng dưới đây
echo 'extension=memcache.so' > /etc/php.d/memcached.ini
- Khởi động lại apache hoặc httpd.
2.2: Nếu cài đặt php5 thì memcache tích hợp sẵn trên thư viện của ubuntu hoặc Fedora:
Tải về với lệch: apt-get install php5-memcache (với fedora: yum install php-pecl-memcache)
Sửa file /etc/php5/conf.d/memcache.ini và bỏ ghi chú các dòng sau bằng cách xóa dấu “;” đằng trước:
extension=memcache.so
Khởi động lại apache hoặc httpd.
Sử dụng:
Khởi tạo memcache:
$memcache->connect('localhost', 11211) or die ("Could not connect");
Phương thức connect() có 2 tham số cơ bản là địa chỉ của memcache server và cổng kết nối tới memcache server. Ở ví dụ trên, chúng ta kết nối tới máy chủ localhost, sử dụng cổng mặc định của ứng dụng memcache là 11211.
Gán dữ liệu từ memcache.
Trong đó:
$key là khóa chỉ số cho một memcache được tạo ra.
$ var là đối tượng được gán cho memcache tương ứng với $key.
$flag (có thể có hoặc không): cờ thiết định nén memcache hay không (sử dụng chuẩn zlib).
$expire: thời gian sống của memcache trên server. Tham số bằng không nếu muốn tồn tại vô hạn, nhưng không thể đảm bảo tính vô hạn nếu vì lý do nào đó server cần bộ nhớ cho việc khác.
Lấy dữ liệu từ memcache:
Memcache::get(string $key [, int $flags ] ); //Lấy memcache là một đối tượng.
Memcache::get(array $keys [, array $flags ] );//Lấy một mảng.
<http://vietnux.com>
| --------------------------------------------------- Để tạo cache trên server. thì memcache chiếm bao nhiêu bộ nhớ của hệ thống ? |
khi cai memcache nen thi he thong hoan toan chiem rat it, chi khoang may chuc MB, con khi ban su dung memcache thi tuy` vao khoi luong du lieu luu tren server ma nen set so luong Ram cho MemCache, theo minh duoc biet nhu VCCorp su dung trang Rongbay.com cung chi set 4GB cho memcache ma chay tet ga.
Không có nhận xét nào:
Đăng nhận xét