Redis (Remote Dictionary Server) là một hệ thống mã nguồn mở được thiết kế để lưu trữ dữ liệu có cấu trúc và có thể được sử dụng như một cơ sở dữ liệu, bộ nhớ cache, hoặc một trình thông báo (message broker). Nó nổi bật với hệ thống lưu trữ dữ liệu KEY-VALUE mạnh mẽ và phổ biến. Redis hỗ trợ nhiều cấu trúc dữ liệu cơ bản như hash, list, set, sorted set, string, giúp tối ưu cho các ứng dụng khác nhau.
Điểm đáng chú ý là toàn bộ dữ liệu trong Redis được ghi và lưu trữ trên RAM, mang lại tốc độ đọc/ghi dữ liệu cực kỳ nhanh chóng. Redis thường được sử dụng như một bộ nhớ đệm (Cache) nhờ vào tốc độ vượt trội, giúp chia sẻ dữ liệu linh hoạt giữa các ứng dụng hoặc làm cơ sở dữ liệu tạm thời. Redis cũng có khả năng hoạt động như Full Page Cache cho các trang web, nhờ vào tính nhất quán, ngay cả khi có sự khởi động lại, người dùng vẫn trải nghiệm tốc độ tải trang mượt mà.
Yêu cầu
- VPS/Server sử dụng CentOS7
- Đã cài đặt PHP-FPM bao gồm cả php-devel
- Ram từ 2GB trở lên và có cấu hình Swap
Bước 1: Cài đặt EPEL
Bài viết giải thích rằng Redis không có sẵn trong kho yum mặc định, do đó, để cài đặt Redis, người dùng cần bật kho lưu trữ EPEL yum trên máy chủ của họ. Để kích hoạt EPEL, họ có thể sử dụng lệnh sau:
yum install epel-release
Bước 2: Cài đặt Redis
Bây giờ, bạn có thể sử dụng trình quản lý gói yum để triển khai máy chủ Redis trên máy chủ ảo riêng (VPS). Hãy thực hiện lệnh sau để cài đặt Redis trên hệ thống của bạn:
yum install -y redis
Khi quá trình cài đặt hoàn tất, khởi động lại dịch vụ Redis và kích hoạt tự động khởi động khi hệ thống khởi động lại bằng cách sử dụng các lệnh sau:
systemctl enable redis
systemctl start redis
Bước 3: Cài đặt igbinary
Igbinary là một giải pháp thay thế cho bộ nối tiếp PHP tiêu chuẩn. Nó chuyển đổi cấu trúc dữ liệu PHP thành định dạng nhị phân, mang lại lợi ích về tiết kiệm bộ nhớ cache và tăng tốc độ tải trang. Để có thông tin chi tiết về Igbinary, bạn có thể truy cập thêm tại đây.
- Cài đặt cho Igbinary PHP 5.6
cd /opt wget https://pecl.php.net/get/igbinary-2.0.8.tgz tar -xvf igbinary-2.0.8.tgz cd igbinary-2.0.8 /usr/bin/phpize && ./configure –with-php-config=/usr/bin/php-config make && make install
- Cài đặt cho Igbinary PHP 7
cd /opt wget https://pecl.php.net/get/igbinary-3.1.2.tgz tar -xvf igbinary-3.1.2.tgz cd igbinary-3.1.2 /usr/bin/phpize && ./configure –with-php-config=/usr/bin/php-config make && make install
- Lưu ý: Nếu gặp thông báo lỗi như dưới đây nghĩa là các bạn chưa cài đặt php-devel
Can’t find PHP headers in /usr/include/php The php-devel package is required for use of this command.
Để cài php-devel các bạn có thể chạy lệnh sau yum -y install php-devel
Bước 4: Cài đặt Redis PHP extension
Tiếp theo các bạn cần cài đặt Redis PHP extension
- Cài đặt cho Redis PHP extension PHP 5.6
cd /opt wget https://pecl.php.net/get/redis-4.3.0.tgz tar -xvf redis-4.3.0.tgz cd redis-4.3.0 /usr/bin/phpize && ./configure –enable-redis-igbinary –with-php-config=/usr/bin/php-config make && make install
- Cài đặt cho Redis PHP extension PHP 7
cd /opt wget https://pecl.php.net/get/redis-5.2.1.tgz tar -xvf redis-5.2.1.tgz cd redis-5.2.1 /usr/bin/phpize && ./configure –enable-redis-igbinary –with-php-config=/usr/bin/php-config make && make install
Bước 5: Cấu hình Load Redis Module
Để PHP có thể load được Igbinary và Redis PHP extension các bạn tạo file /etc/php.d/00-custom.ini với nội dung như sau: extension=igbinary.so extension=redis.so
Sau đó các bạn tiến hành restart lại php-fpm service php-fpm restart
Để kiểm tra xem module đã được load hay chưa các bạn dùng lệnh sau php -m | grep redis php -m | grep igbinary
Bước 6: Cấu hình Redis làm Máy chủ Cache
Các bạn mở file /etc/redis/redis.conf và xoá toàn bộ nội dung bên trong sau đó thay thế bằng nội dung sau maxmemory 256mb maxmemory-policy allkeys-lru save “”
Cấu hình trên yêu cầu Redis xóa bất kỳ khóa nào bằng thuật toán LRU khi đạt tới bộ nhớ tối đa 256mb. Lưu tệp cấu hình và khởi động lại dịch vụ Redis: systemctl restart redis
Bước 7: Kiểm tra kết nối với Redis Server
Để kiểm tra xem redis đã hoạt động hay chưa các bạn dùng lệnh sau redis-cli ping
Nếu kết quả trả về là PONG nghĩa là redis đã hoạt động.
Tài liệu tham khảo:
- https://redis.io/documentation
- https://github.com/igbinary/igbinary
Chúng ta đã cài đặt và cấu hình xong Redis để làm cache server. Chúc bạn thành công.