NukeViet

https://nukeviet.vn

Cấu hình Memcached server để cache cho Session, CSDL

Khi 1 website cần tốc độ nhanh, thì việc Cache trên RAM là điều bắt buộc, bởi không cái gì có thể truy xuất dữ liệu nhanh hơn RAM.
Cấu hình Memcached server để cache cho Session, CSDL
I. Memcached là gì ?
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. Memcache hoạt động thế nào ?
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 memcache cho server.
Để cài đặt memcache cho server bắt buộc bạn phải có server riêng để có thể cấu hình và cài đặt memcache cho server. Trong bài viết này sẽ hướng dẫn bạn cấu hình và cài đặt memcache trên máy ảo và trên server thật bạn cũng làm tương tự.

Trước tiên để có thể cấu hình memcache cho server bạn cần tải phần mềm tạo máy ảo và cài đặt máy ảo. Bạn có thể tải phần mềm tạo máy ảo và làm theo hướng dẫn tại đây. Sau khi bạn đã thành thạo việc cài đặt và cấu hình máy ảo cho riêng mình, tiếp đến các bạn có thể bắt đầu chính thức cấu hình memcache cho máy ảo của bạn.
 
1. Cài đặt trên windown
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. Cài đặt trên linux
Bước 1: Cài đặt Vtiger tại địa chỉ https://vpsineu.com/blog/how-to-install-and-setup-vtiger-crm-on-a-centos-7-vps/

Bước 2: Sau khi cài đặt thành công Vtiger. Bạn vào thư mục var/www/html tạo 1 file info.php trong file info.php bạn gõ câu lệnh <?php> phpinfo <?>

Bước 3: Cài memcached cho máy ảo. Bạn sử dụng đoạn lệnh sau để tiến hành cài đặt memcahed
yum  install -y memcached
systemctl start memcached
systemctl enable memcached
# Mở để nhiều máy khác vào được
sed -i 's/OPTIONS=/#OPTIONS=/g' /etc/sysconfig/memcached
systemctl restart memcached

Bước 4: Kiểm tra xem đã có thư viện php-memcached chưa. Để kiểm tra các bạn chỉ cần gõ IP/info.php và tìm memcached. Nếu chưa có các bạn tiến hành cài php-memcached với câu lệnh sau:
yum -y install php-memcached
service httpd restart

Bước 5: Cài đặt thêm memcache.php bằng câu lệnh sau:
cd /var/www/html
wget -O memcache.zip https://github.com/vuthao/memcache.php/archive/master.zip
unzip memcache.zip 
mv ./memcache.php-master/ ./memcache/
mv ./memcache/memcache.php ./memcache/index.php

Bước 6: Sửa thông tin file: memcache/etc/config.php với các giá trị sau
define('ADMIN_USERNAME','admin');   // Admin Username
define('ADMIN_PASSWORD','pass');    // Admin Password
define('BASE_URL', '/memcache/');
Truy cập vào địa chỉ http://IP/memcache/ để kiểm tra hoạt động của memcache
 
Với Nukeviet để cấu hình với memcache bạn vừa tạo ta chỉ cần chỉnh sửa các file như sau:
  • Tìm File config.php sửa dòng: $global_config['cached'] = 'files'; sửa thành $global_config['cached'] = 'memcached';
  • Nếu như các cấu hình của memcached thay đổi cần sửa vào file /includes/constants.php. Bạn tìm dòng sau

//memcached
define('NV_MEMCACHED_HOST','127.0.0.1');
define('NV_MEMCACHED_PORT','11211');
​​​​​​​
Và chỉnh sửa thành thông số cấu hình của memcached

Bạn đã không sử dụng Site, Bấm vào đây để duy trì trạng thái đăng nhập. Thời gian chờ: 60 giây