Memcached là một hệ thống lưu trữ bộ nhớ phân tán mã nguồn mở.
Thông thường, nó được sử dụng như một hệ thống bộ nhớ đệm để tăng tốc ứng dụng bằng cách lưu vào bộ đệm các đối tượng khác nhau từ kết quả của các lệnh gọi cơ sở dữ liệu.
Trong bài này mình sẽ hướng dẫn cách cài đặt và cấu hình Memcached trên CentOS 7.
Cài đặt Memcached
Các gói memcached có sẵn mặc định trong kho lưu trữ CentOS 7. Nên mình dễ dàng cài đặt như sau :sudo yum install memcached libmemcachedgói libmemcached cung cấp một số công cụ để quản lý máy chủ memcached. Sau khi quá trình cài đặt hoàn tất, hãy bật và khởi động dịch vụ Memcached bằng cách nhập:
sudo systemctl start memcached sudo systemctl enable memcachedKiểm tra dịch vụ memcached có hoạt động chưa:
systemctl status memcached
Cấu hình Memcached
File lưu và cấu hình memcached nằm thư mục /etc/sysconfig/memcached Theo mặc định, Memcached được đặt để nghe trên tất cả interfaces. Khi cấu hình không đúng, Memcached rất dễ bị tấn công DDos.Chỉ truy cập local
Nếu máy client kết nối với máy chủ cũng đang chạy trên cùng một máy chủ lưu trữ, bạn nên đặt dịch vụ Memcached để chỉ đi trên localhost. Để cấu hình chỉ đi trên localhost hãy chỉnh sử file cấu hình như sau :sudo vi /etc/sysconfig/memcached OPTIONS="-l 127.0.0.1"Sau đó khởi động lại dịch vụ Memcached :
sudo systemctl restart memcached
Truy cập từ xa
Mặc định memcached mở port 11211 để có phép truy cập từ xa. Để đảm bảo mình khuyến cáo cấu hình port chỉ cho phép một số máy chủ truy cập vào. Ví dụ IP cho phép truy cập vào 192.1.100.50 : Đầu tiên mình sẽ mở firewall cho đi qua port 11211 và chỉ cho phép máy có IP 192.1.100.50 :sudo firewall-cmd --new-zone=memcached --permanent sudo firewall-cmd --zone=memcached --add-port=11211/udp --permanent sudo firewall-cmd --zone=memcached --add-port=11211/tcp --permanent sudo firewall-cmd --zone=memcached --add-source=192.168.100.30/32 --permanent sudo firewall-cmd --reloadKhi cấu hình xong tường lửa mình tiếp tục mở file cấu hình của memcached và sửa như sau :
sudo nano /etc/sysconfig/memcached OPTIONS="-l 192.1.100.50"Lưu tệp và khởi động lại dịch vụ Memcached:
sudo systemctl restart memcached
Kết nối với Memcached
Để kết nối với máy chủ Memcached, bạn cần sử dụng ngôn ngữ dành riêng cho máy client.PHP
Để sử dụng Memcached làm cơ sở dữ liệu bộ nhớ đệm cho ứng dụng PHP của bạn như WordPress , Drupal hoặc Magento , bạn cần cài đặt php-pecl-memcache :sudo yum install php-pecl-memcache
Python
Có một số thư viện Python để tương tác với memcache. Bạn có thể cài đặt thư viện của mình bằng cách sử dụng pip :pip install pymemcache pip install python-memcached