Hosting
Tên miền
Cloud
Máy chủ
EmailSSLFirewall Anti DDoSTối ưu tốc độ website

Nội dung

    Hướng dẫn cấu hình PHP Session Cache trên Redis

    Ngày đăng:

    18/02/2025

    Cập nhật lần cuối:

    12/11/2025

    Mục lục

    Bài viết này sẽ hướng dẫn bạn cách thực hiện cấu hình PHP Session Cache trên Redis nhanh chóng nhất. Cùng theo dõi nhé.

    Redis là gì?

    Redis được viết tắt của cụm từ Remote Dictionary Server, là hệ thống mã nguồn mở, kho lưu trữ dữ liệu có cấu trúc dạng key-value hỗ trợ nhiều loại dữ liệu khác nhau (hash, set, list, string, sorted, bitmap,…).

    Nó có thể dùng như một database, message broker, bộ nhớ cache hay một queue. Ngoài ra Redis còn hỗ trợ clustering (nhóm hai hoặc nhiều server hoạt động cùng lúc) nhờ đó Redis luôn được dùng trong môi trường có yêu cầu tính sẵn sàng cao (high availability) và độ linh hoạt cao (scalable).

    PHP session là gì?

    Khi người dùng làm việc với một ứng dụng, mở-thay đổi-tương tác-đóng lại ứng dụng, điều này có thể coi là một phiên (session).

    Ở trên máy tính cục bộ, thông tin user là ai, bắt đầu và kết thúc ứng dụng nào nó đều biết. Tuy nhiên trên môi trường Internet lại khác, các web-server không làm được điều đó, do HTTP không duy trì trạng thái.

    Cá session giải quyết vấn đề này bằng cách lưu trữ thông tin người dùng được sử dụng trên nhiều trang (tên tuổi hay sở thích,..). Theo mặc định thì các biến session này tồn tại đến khi người dùng đóng trình duyệt.

    Session handler là gì?

    Session handler chịu trách nhiệm lưu trữ và truy xuất dữ liệu được lưu trong session. Mặc định PHP sử dụng kiểu dữ liệu file cho việc này.

    Trong môi trường có nhiều web server được dùng cho việc xử lí PHP, các file lưu trữ nằm rải rác khắp web-server, làm thông tin người dùng không nhất quán khi truy cập vào website.

    Cấu hình session mặc định trong php.ini :

    session.save_handler = files

    session.save_path = “/tmp”

    Do đó, một giải pháp session handler bên ngoài (không lưu trữ local dưới dạng file) được dùng để đảm bảo tính mở rộng cho hệ thống là lưu trữ tập trung trên một hoặc nhiều Redis server.

    Lợi ích của Redis

    Nói về tốc độ, Redis server xử lý rất nhanh. Là một NoSQL database, nó có tốc độ lưu trữ truy xuất rất cao, hoạt động tốt với nhiều kiểu dữ liệu khác nhau dù là dữ liệu phức tạp. Dễ sử dụng, đa dạng chức năng, nhiều tùy chọn đã giúp Redis nổi bật và được tin tưởng làm cơ sở dữ liệu chính cho cá nhân và doanh nghiệp.

    Hướng dẫn cài đặt và cấu hình PHP session trên Redis

    Yêu cầu:

    Cần 2 server khác nhau nằm trong cùng trung tâm dữ liệu và sử dụng mạng riêng, bao gồm:

    • Hệ điều hành Ubuntu server mới để cài đặt Redis (tối thiểu version 20.04)-tạm gọi là Redis.
    • Một  PHP web-server cùng với LAMP hoặc LEMP đã có trước đó-tạm gọi là web, trong ví dụ này sẽ là CentOS 7 chạy LEMP.

    Bước 1: Cài đặt Redis server

    Khuyến khích nên login vào root user hoặc user non-root có quyền sudo.

    $ apt-get install redis-server
    Bắt đầu cài đặt Redis server
    Bắt đầu cài đặt Redis server

    Gõ Y/y để tiếp tục.

    Người dùng sẽ chờ thời gian ngắn để hoàn tất cài đặt. Lúc này, có thể dùng mẹo nhỏ để kiểm tra Redis cài đặt bình thường hay chưa. Dùng lệnh redis-cli ping.

    Lúc này kết quả trả về sẽ là PONG. Để biết port mà Redis đang sử dụng, dùng lệnh netstat -tlpn, kết quả trả về số port, trạng thái hoạt động của port.

    Kiểm tra trạng thái port của Redis
    Kiểm tra trạng thái port của Redis

    Sau đó hãy kiểm tra service của Redis đã bắt đầu chạy hay chưa bằng lệnh systemctl status redis-server. Nếu chưa, hãy dùng lệnh systemctl start redis-server rồi kiểm tra lại.

    Kiểm tra trạng thái hoạt động của Redis-service
    Kiểm tra trạng thái hoạt động của Redis-service

    Bước 2: Cấu hình Redis

    Trước tiên cần biết IP chỉ định để gán cho Redis, sử dụng lệnh ifconfig.

    Danh sách các interface mạng đang sẵn có trên server
    Danh sách các interface mạng đang sẵn có trên server

    Trong ví dụ này, ở interface ens18 của server Redis là 192.168.168.44, người dùng sẽ gán IP này ở các bước sau để kết nối Redis và server web.

    Cụ thể, tất cả các IP kể cả server web trên nằm cùng range IP với Redis đều có thể kết nối vào Redis, tuy nhiên người dùng nên hạn chế dùng IP public khi cấu hình hoặc nếu cần dùng thì phải cấu hình firewall để giới hạn truy cập vào các dữ liệu nhạy cảm, dễ bị lợi dụng tấn công.

    Tiếp tục dùng trình soạn thảo nano và mở file config theo đường dẫn.

    Cụ thể, tất cả các IP kể cả server web trên nằm cùng range IP với Redis đều có thể kết nối vào Redis, tuy nhiên người dùng nên hạn chế dùng IP public khi cấu hình /etc/redis/redis.conf và tiến hành gán IP.

    Tìm xuống dòng lệnh sau:

    bind 127.0.0.1 ::1

    Dùng # để vô hiệu dòng lệnh cũ và thay vào dòng lệnh mới:

    bind 192.168.168.44

    Sau đó hãy save và đóng file này (nhấn Ctrl + X, gõ Y và nhấn Enter).

    Tiếp theo, khởi động lại service Redis bằng lệnh service redis-server restart.

    Để server Redis được an toàn hơn, người dùng cần thiết lập các mục bảo vệ sau.

    Bước 3: Khởi tạo mật khẩu cho Redis

    Dùng nano và mở lại file conf của Redis.

    nano /etc/redis/redis.conf

    Tìm xuống vị trí có dòng requirepass foobared và thêm dòng RequirePass + password. Trong ví dụ này sẽ là:

    requirepass strongpassword
    Thiết lập mật khẩu login vào Redis

    Sau khi hoàn tất hãy lưu và đóng file này. Khởi động lại service và tiến hành kiểm tra xác thực (thực hiện trực tiếp từ bên trong server Redis).

    Đăng nhập Redis

    Gõ lệnh redis-cli -h (ip của Redis-server) để login vào server Redis.

    Lưu ý: Trong trường hợp khi đã set mật khẩu nhưng không thực hiện xác thực AUTH, hệ thống sẽ báo lỗi sau:

    (error) NOAUTH Authentication required

    Ở đây kết quả trả về là “empty array”, điều này nghĩa là server Redis đang trống, người dùng vẫn chưa cấu hình web server thành session handler.

    Bước 4: Cài đặt extension php-redis trên webserver – cấu hình session handler

    Tại bước này, cấu hình sẽ thực hiện trên web-server là CentOS 7 chạy LEMP.

    apt-get install php-redis
    Cài đặt extension bên phía server

    Gõ Y/y và chờ cài đặt hoàn tất

    Hãy dùng trình soạn thảo nano để tiến hành chỉnh sửa cấu hình như sau:

    nano /etc/php/8.1/cli/php.ini

    Tìm xuống mục [Session] và thay đổi giá trị của 2 dòng:

    session.save_handler = files
    session.save_path = "/tmp"

    Trở thành:

    session.save_handler = redis

    session.save_path = “tcp://192.168.168.44:6379?auth=strongpassword”

    Trong đó ở phần “auth” sẽ là nơi nhận mật khẩu đã được set ở bước trên.

    Vị trí cần thay đổi trong file php.ini
    Vị trí cần thay đổi trong file php.ini

    Save và đóng file cấu hình lại, tiếp tục khởi động lại service của PHP.

    với Ubuntu: service php5-fpm restart.

    với CentOS 7: service php-fpm restart.

    Bước 5: Kiểm tra handler session của Redis

    Ở bước này, sau khi đã cấu hình ở 2 bên server, người dùng cần 1 đoạn script hoặc ứng dụng để có thể đảm bảo session được Redis handling.

    Các đơn giản là tạo 1 file script đặt tên là “index.php” và lưu lại trên đường dẫn chứa trong thư mục gốc DocRoot (document-root) của phía web-server.

    Tạo 1 file tên tùy ý hoặc chèn thêm nội dung vào file có sẵn là index.php trong thư mục gốc DocRoot

    Trong ví dụ này, trên server web chạy LEMP có DocRoot là /var/www/testweb.com và có sẵn file là index.php Thêm các dòng lệnh tùy ý, có thể lưu lệnh cho phép đếm số lần reload lại website như trong hình.

    Mở browser và nhập URL là http://(tên trang web)/index.php cho ra kết quả như sau.

    Kết quả khi truy cập web
    Kết quả khi truy cập web

    Mỗi lần reload lại website, số lần ở dưới sẽ tăng 1 lần và lặp lại. Sau đó quay lại với phía Redis server và gõ lệnh redis-cli -h 192.168.168.44 rồi nhập mật khẩu xác thực.

    Tiếp tục gõ keys * để xem kết quả.

    Trên đây là các bước hướng dẫn cấu hình PHP Session Cache trên Redis. Nếu gặp phải vấn đề gì trong quá trình thao tác, bạn có thể liên hệ đội ngũ Vietnix để được hỗ trợ cụ thể hơn.

    VIETNIX – DỊCH VỤ HOSTING, VPS TỐC ĐỘ CAO, ỔN ĐINH, BẢO MẬT

    • Địa chỉ: 265 Hồng Lạc, Phường Bảy Hiền, Thành Phố Hồ Chí Minh
    • Điện thoại: 1800 1093
    • Email liên hệ: sales@vietnix.com.vn
    • Website: https://vietnix.vn/

    VIETNIX

    Đội ngũ Vietnix tại Vietnix

    Kết nối với mình qua

    Vietnix thành lập vào năm 2012, là công ty chuyên nghiệp tại Việt Nam trong lĩnh vực cung cấp dịch vụ Hosting, VPS, máy chủ vật lý, dịch vụ Firewall Anti DDoS, SSL… Với 10 năm xây dựng và phát triển, ứng dụng nhiều công nghệ hiện đại, Vietnix đã giúp hàng ngàn khách hàng tin tưởng lựa chọn, mang lại sự ổn định tuyệt đối cho website của khách hàng để thúc đẩy việc kinh doanh đạt được hiệu quả và thành công.

    Kết nối với mình qua

    NHỮNG CÂU HỎI THƯỜNG GẶP VỀ DỊCH VỤ TẠI VIETNIX

    Tôi có thể yêu cầu hỗ trợ từ Vietnix như thế nào?

    Để có thể gửi ticket yêu cầu hỗ trợ đến các phòng ban của Vietnix, trước hết bạn cần đăng nhập vào hệ thống portal tại đường link: https://portal.vietnix.vn/.
    Sau đó vào phần Hỗ trợ > Chọn Gửi yêu cầu > Lựa chọn phòng ban mà bạn muốn gửi yêu cầu > Nhập nội dung cần hỗ trợ và nhấn Gửi.

    Chúng tôi sẽ tiếp nhận và phản hồi ngay khi nhận được yêu cầu từ Quý Khách Hàng. Bạn có thể xem hướng dẫn chi tiết cách gửi ticket tại đây.
    Nếu bạn còn vấn đề gì thắc mắc, hãy liên hệ đến hotline 1800 1093 để được hỗ trợ giải đáp nhanh chóng.

    Thời gian các kỹ thuật viên có thể hỗ trợ khách hàng trong ngày?

    Vietnix có riêng đội ngũ tư vấn và hỗ trợ kỹ thuật chuyên nghiệp giúp khách hàng giải quyết được các vấn đề phát sinh một cách nhanh gọn nhất, không làm ảnh hưởng đến hiệu suất công việc. Đội ngũ nhân viên của chúng tôi với kinh nghiệm và trình độ chuyên môn cao sẵn sàng hỗ trợ khách hàng 24/7, mang đến cho khách hàng trải nghiệm tốt nhất khi sử dụng dịch vụ tại Vietnix.

    Tôi muốn nâng cấp dịch vụ thì phải làm sao?

    Đảm bảo an toàn và bảo mật thông tin của Quý khách hàng là nhiệm vụ Vietnix luôn đặt lên hàng đầu. Chúng tôi sẽ không xâm phạm vào thông tin và dữ liệu của khách hàng khi chưa được cho phép. Vietnix cam kết không chia sẻ thông tin khách hàng dưới bất kỳ hình thức nào cho bên thứ ba. Mọi hoạt động sẽ tuân thủ đúng pháp luật, điều khoản hợp đồng và Chính sách bảo mật thông tin của chúng tôi.

    Tôi có thể gửi yêu cầu hỗ trợ đến một phòng ban cụ thể hay không? Và làm như thế nào?

    Vietnix có hệ thống các kênh liên lạc đa dạng giúp bạn dễ dàng kết nối được với chúng tôi. Bạn có thể liên hệ với Vietnix qua Fanpage Facebook, Livechat, Ticket, Email,… Ngoài ra, trong trường hợp cần hỗ trợ nhanh chóng, bạn có thể gọi đến hotline: 1800 1093 – 07 088 44444 để được giải quyết kịp thời.

    Dịch vụ của tôi đã (sắp) hết hạn tôi phải làm gì?

    Tại Vietnix, chúng tôi hỗ trợ việc hoàn tiền trong vòng 30 ngày kể từ khi dịch vụ của quý khách được kích hoạt trên hệ thống (không tính thời gian dùng thử dịch vụ), ngoại trừ các dịch vụ: Domain, SSL, License.

    – Đối với các dịch vụ Hosting, VPS: Hoàn tiền 100% trong vòng 07 ngày kể từ ngày đăng ký dịch vụ. Sau 07 ngày hoàn lại số tiền tương ứng sau khi đã trừ đi số tiền dịch vụ đã được sử dụng theo ngày.

    – Đối với các dịch vụ Server, Colocation: hoàn lại số tiền tương ứng sau khi đã trừ đi số tiền dịch vụ đã được sử dụng theo ngày.

    Quý khách có thể xem nội dung chi tiết tại Chính sách hoàn tiền của Vietnix.

    Xem tất cả câu hỏi