You are on page 1of 5

Intel Division, VCMedia Corp.

A few things about memcache:


Memcache is a daemon, meaning it runs as a separate service on your
machine. Just like MySQL runs as a separate service. In fact, to use
memcache in PHP you have to connect to it, just like MySQL.

Think of memcache as the $_SESSION variable for PHP, but instead of


it working on a per-user basis, it runs over the entire application — like
MySQL. In fact, you can use memcache as you session handler for PHP.

1. Cài đặt Memcached Server:


a. Download
i. memcached for Windows (1.2.4 beta)
ii. memcached for Win32 (1.2.1)
b. Unzip thu muc memcache: c:\memcache
c. Cài đặt service:
i. cmd: c:\memcacache\memcached -d install
ii. cmd: c:\memcacache\memcached -d start
Trên đây là cài đặt cho windows. Cài trên CentOS dùng lệnh yum install
memcached, hoặc tải file RPM về cài đặt (có gì hỏi Mr. Đức platforms:P
hehe)

2. Cài đặt Memcached PHP Client:


a. Cài MSI của PHP 5.2.6 chọn extension memcache.
b. Nếu dùng XAMPP, WAMP,… thì lên pecl.php.net để tải. Thêm

3. Cấu hình Runtime:


a. Cấu hình file php.ini:
- memcache.allow_failover
- memcache.max_failover_attempts
- memcache.chunk_size
- memcache.default_port
- memcache.hash_strategy "standard"
- memcache.hash_function "crc32"
- session.save_handler "files”
- session.save_path ""

Cụ thể về cấu hình session trong memcache:

Memcache Basics 1/5


Intel Division, VCMedia Corp.

+ session.save_handler = memcache => sử dụng memcache như một bộ


quản lí các phiên làm việc
+ session.save_path = "tcp://127.0.0.1:11211?
persistent=1&weight=2&timeout=2&re try_interval=10,
,tcp://127.0.0.1:11211"

o tcp://127.0.0.1:11211 => chỉ tới server (localhost) nơi mà memcache lắng


nghe các kết nối theo cổng mặc định là 11211
o Persistent = 1 => tạo một kế nối vĩnh cửu
o Weight = 2 => số lượng buckets (???) được tạo ra cho server để điều khiển
khả năng bị select (Number of buckets to create for this server which in turn
control its probability of it being selected)
o timeout=2 => thời gian lưu lại là 2 giây
o Retry_interval = 10=> tần suất kết nối lại nếu server failed

4. Các functions của Memcache:


- Memcache_add — Thêm một item vào server
- Memcache_addServer — thêm một memcached server vào connection
pool
- Memcache_close — Đóng kết nối với một memcached server
- Memcache_connect — Tạo kết nối với một memcached server
- memcache_debug — Chuyển đổi trạng thái debug output on/off
- Memcache_decrement — Giảm giá trị của các Item
- Memcache_delete — Xóa một item từ server
- Memcache_flush — Làm mất hiệu lực ngay lập tức tất cả các item trên
server, nó không free memory mà chỉ đánh dấu hết những item thành dạng
hết hạn
- Memcache_get — Nhận một hoặc nhiều item từ server
o $memcache_obj = memcache_connect('memcache_host', 11211);
$var = memcache_get($memcache_obj, Array('some_key', 'another_key'));

/* OO API */
$memcache_obj = new Memcache;
$memcache_obj->connect('memcache_host', 11211);
$var = $memcache_obj->get(Array('some_key', 'second_key'));

Trên là vd về get nhiều giá trị cùng lúc (song song). Phương thức get thì có
song song, nhưng set thì không.

Memcache Basics 2/5


Intel Division, VCMedia Corp.

- Memcache_getExtendedStats — xem ở cuối


- Memcache_getServerStatus — Trả về tình trạng Server
- Memcache_getStats — Nhận lấy thông số của server
- Memcache_getVersion — Trả về version của server
- Memcache_increment — Tăng giá trị của Item
- Memcache_pconnect — tạo một kết nối bền vững với memcache server,
Kết nối này không bị đóng sau khi chạy một script hoặc bởi hàm
memcache_close()
- Memcache_replace — Thay thế giá trị của một item đang tồn tại
- Memcache_set — lưu trữ lại dữ liệu trên server
- Memcache_setCompressThreshold — Khởi tạo việc tự động nén đối với
những file lớn
- Memcache_setServerParams — Thay đổi tham số và tình trạng server khi
chạy
- Memcache_getExtendedStats, Nhận lấy những số liệu thống kê của các
server trong pool (Memcache_getStats tương tự)
o Form
Memcache_getExtendedStats ([ string $type [, int $slabid [, int $limit ]]] )

o Ví dụ:

<?php
$memcache_obj = new Memcache;
$memcache_obj->addServer('127.0.0.1', 11211);
$memcache_obj->addServer('127.0.0.1', 11211);

$stats = $memcache_obj->getExtendedStats();
print_r($stats);
?>

o Kết quả:

Array ( [127.0.0.1:11211] => Array (


[pid] => 1964
[uptime] => 232
[time] => 1212808140
[version] => 1.2.1
[pointer_size] => 32
[curr_items] => 0

Memcache Basics 3/5


Intel Division, VCMedia Corp.

[total_items] => 0
[bytes] => 0
[curr_connections] => 1
[total_connections] => 2
[connection_structures] => 2
[cmd_get] => 0
[cmd_set] => 0
[get_hits] => 0
[get_misses] => 0
[bytes_read] => 14
[bytes_written] => 374
[limit_maxbytes] => 67108864 )
))

o Ý nghĩa cụ thể
[pid] => ID qua trinh xử lí của một server
[uptime] => thời gian tính bằng giây mà server này chạy
[time] => Thời gian mà UNIX chấp nhận server
[version] => Phiên bản cửa memcache server
[pointer_size] =>
[curr_items] => Số Items đang được chứa trong server lúc hiện tại
[total_items] => Tổng số items đã được chứa trong server từ khi server bắt
đầu hoạt dộng
[bytes] => số byte đang được dùng để chứa Items
[curr_connections] => Số lượng kết nối đang hoạt động tại thời điểm đó
[total_connections] => Tởng số kết nối kể từ khi server bắt đầu hoạt động
[connection_structures] => Số lượng các cấu trúc kết nối được chỉ định bởi
server
[cmd_get] => Tổng hợp số lần nhận dữ liệu từ server
[cmd_set] => Tổng hợp số lượng số lần chứa dữ liệu lên server
[get_hits] => Tổng số key được yêu cầu và tìm thấy trên server, đồng thời
trả về kết quả
[get_misses] => Tổng số Item được yêu cầu nhưng không tìm thấy trên
server
[bytes_read] => Tổng số byte được đọc từ server
[bytes_written] => Tổng số byte được viết lên server
[limit_maxbytes] => Tổng số bype giơi hạn mà server cho phép để lưu trữ

- Memcache_getServerStatus:

Memcache Basics 4/5


Intel Division, VCMedia Corp.

o Form:
Memcache::getServerStatus ( string $host [, int $port ] );
o Ví dụ:

<?php
$memcache = new Memcache;
$memcache->addServer(‘127.0.0.1’, 11211);
echo $memcache->getServerStatus('127.0.0.1', 11211);
?>

o Kết quả
1
o Ý nghĩa:
Với số khác 0: tình trạng server hoạt động bình thường
Với số bằng 0: server lỗi

Memcache Basics 5/5