Skip to main content

Tổng quan

Memcached là một hệ thống lưu trữ bộ nhớ phân tán mã nguồn mở đặc biệt. Những thông tin được lưu trữ trong Memcached là bản sao các đối tượng (objects) và dữ liệu được người dùng truy cập nhiều lần.

Hiểu đơn giản, Memcached được sử dụng để tăng tốc các ứng dụng web động bằng cách giảm tải cơ sở dữ liệu. Mỗi khi yêu cầu cơ sở dữ liệu được thực hiện, Memcached hỗ trợ thêm tải cho server với các đối tượng dữ liệu được lưu trữ trong bộ nhớ động.

Bài viết hôm nay mình chia sẻ mọi người cách cài Memcached trên Ubuntu 20 LTS

Yêu cầu

  • Ubuntu 20.04 LTS
  • SSH Access with sudo privileges
  • Open Ports 11211

Cập nhập các gói hệ thống

sudo apt-get update

Step #1: Cài đặt Memcached trên Ubuntu 20.04 LTS

Cài đặt memcachedlibmemcached-tools bằng command.

 sudo apt-get install memcached  libmemcached-tools -y

Kiểm tra lại Memcached service is running bằng command,

sudo systemctl status memcached.service

Output

● memcached.service - memcached daemon
Loaded: loaded (/lib/systemd/system/memcached.service; enabled; vendor preset: enabled)
Active: active (running)
Main PID: 10919 (memcached)
Tasks: 6
Memory: 876.0K
CPU: 16ms CGroup: /system.slice/memcached.service
└─10919 /usr/bin/memcached -m 64 -p 11211 -u memcache -l 11.4.0.13

Cho phép Memcached khởi động cùng hệ thống

sudo systemctl enable memcached.service

Output

Synchronizing state of memcached.service with SysV init with /lib/systemd/systemd-sysv-install...
Executing /lib/systemd/systemd-sysv-install enable memcached

Bổ sung một số lệnh sau để quản lí Memcached start, restart và stop .

 sudo systemctl start memcached.service
 sudo systemctl restart memcached.service
 sudo systemctl stop memcached.service

Step #2: Cấu hình Memcached trên Ubuntu

Tiếp theo bạn cấu hình Memcached, vì mặc định Memcached lắng nghe ở localhost. Và nếu muốn bạn cấu hình bằng cách mở Memcached config file `/etc/memcached.config`

sudo vi /etc/memcached.config

Thay đổi bằng IP server private hoặc public IP như sau:

Ở đây mình change thành IP 192.168.10.15 port 11211


# memcached default config file
# 2003 - Jay Bonci 
# This configuration file is read by the start-memcached script provided as
# part of the Debian GNU/Linux distribution.
# Run memcached as a daemon. This command is implied, and is not needed for the
# daemon to run. See the README.Debian that comes with this package for more
# information.
-d
# Log memcached's output to /var/log/memcached
logfile /var/log/memcached.log
# Be verbose
# -v
# Be even more verbose (print client commands as well)
# -vv
# Start with a cap of 64 megs of memory. It's reasonable, and the daemon default
# Note that the daemon will grow to this size, but does not start out holding this much
# memory
-m 64
# Default connection port is 11211
-p 11211
# Run the daemon as root. The start-memcached will default to running as root if no
# -u command is present in this config file
-u memcache
# Specify which IP address to listen on. The default is to listen on all IP addresses
# This parameter is one of the only security measures that memcached has, so make sure
# it's listening on a firewalled interface.
-l 192.168.10.15
# Limit the number of simultaneous incoming connections. The daemon default is 1024
# -c 1024
# Lock down all paged memory. Consult with the README and homepage before you do this
# -k
# Return error when memory is exhausted (rather than removing items)
# -M
# Maximize core file limit
# -r

Sau đó khởi động lại Memcached

 sudo systemctl restart memcached.service

Step #3: Cài đặt Memcached PHP Module

Hiện nay có 2 extension được sử dụng phổ biến hiện nay đó là memcachememcached (cùng với tên của dịch vụ Memcached).

Memcache được ra đời sớm hơn Memcached, dịch vụ này cung cấp các thủ tục và giao diện hướng đối tượng tới Memcached. Memcache thực hiện caching hiệu quả cao, ổn định và sửa rất nhiều lỗi bảo mật. Tuy nhiên dịch vụ này không hỗ trợ nhiều tính năng mới của dịch vụ Memcached nhưng vẫn được nhiều người lựa chọn sử dụng cho tới ngày nay.

Memcached ra đời muộn hơn Memcache và chúng sử dụng thư viện `libmemcached` để cung cấp API cho quá trình giao tiếp với dịch vụ `libmemcached`. Chúng cung cấp nhiều thuộc tính mới và được đánh giá là nhanh hơn Memcache. Tuy nhiên dịch vụ vẫn còn nhiều lỗi bảo mật chưa được sửa nên việc sử dụng chúng còn khá khó khăn.

Nếu chưa cài php trên ubuntu thì cài cần thêm php.

Bỏ qua bước này nếu đã cài php

sudo add-apt-repository ppa:ondrej/php
sudo apt-get update
sudo apt-get install -y php php-dev php-pear libapache2-mod-php

hoặc

sudo apt-get install apache2 php7.2 libapache2-mod-php7.2 php-memcached php7.2-cli

Cài đặt PHP Memcached

 sudo apt-get install php-memcached -y

Reload hoặc Restart the Apache

 sudo systemctl reload apache2

hoặc

 sudo systemctl restart apache2

Kiểm tra memcache đã hoạt động chưa bằng cách tạo file info.php file trong /var/www/html

 sudo nano /var/www/html/info.php

Thêm

Nhập ip trên trình duyệt và kiểm tra

`http://localhost/info.php`

Step #4: Thêm Firewall Rule

Allow port 11211/tcp trong Firewall để Access Memcached

 sudo ufw allow 11211
 sudo ufw status

Nếu bạn sử dung Memcached trên Cloud Instance Allow the Port in Incoming hoặc Network Security Group

Lời kết

Hy vọng với những chia sẻ trên đây của mình, các bạn đã phần nào hiểu rõ Memcache là gì? cách cài đặt, cũng như sử dụng hệ thống này trên Linux và Ubuntu. Chúc các bạn thành công.!

Tham khảo: Memcached Official Page

------Brings to you with ♥️ by vietnamtutor.com
Việt Nam Tutor

Xin chào, tôi là Anthony Nguyễn, một lập trình viên Full Stack với nhiều năm kinh nghiệm trong ngành công nghệ thông tin. Tôi tận dụng kiến thức và kỹ năng của mình để tạo ra các giải pháp công nghệ đột phá và đáp ứng những bài toán thách thức, phức tạp.Tôi luôn sẵn sàng để kết nối và học hỏi từ cộng đồng, cũng như chia sẻ những kiến thức và thông tin hữu ích. Với tôi, việc xây dựng kiến thức là như xây dựng một tòa nhà - cần có sự kiên nhẫn, kiến thức vững chắc, và sự cống hiến để tạo nên sự thành công.Nếu bạn có câu hỏi, ý kiến, hoặc muốn kết nối với tôi để thảo luận về công nghệ, đừng ngần ngại liên hệ tôi. Rất mong được nhận gạch đá từ các bạn!

Leave a Reply