close

Memcached và Redis qua Unix socket trên hosting: là gì, lợi ích và cách dùng

Tác giả: Hồng Nhi Ngày đăng: 05/02/2020 Chuyên mục: Hosting & Control Panel
Disclosure
Website Tino blog được cung cấp bởi Tino Group. Truy cập và sử dụng website đồng nghĩa với việc bạn đồng ý với các điều khoản và điều kiện trong chính sách bảo mật - điều khoản sử dụng nội dung. Tino Group có thể thay đổi điều khoản sử dụng bất cứ lúc nào. Việc bạn tiếp tục sử dụng Tino blog sau khi thay đổi có nghĩa là bạn chấp nhận những thay đổi đó.
Why Trust Us
Các bài viết với hàm lượng tri thức cao tại Tino blog được tạo ra bởi các chuyên viên Marketing vững chuyên môn và được kiểm duyệt nghiêm túc theo chính sách biên tập bởi đội ngũ biên tập viên dày dặn kinh nghiệm. Mọi nỗ lực của chúng tôi đều hướng đến mong muốn mang đến cho cộng đồng nguồn thông tin chất lượng, chính xác, khách quan, đồng thời tuân thủ các tiêu chuẩn cao nhất trong báo cáo và xuất bản.

Kết nối Memcached hoặc Redis qua Unix socket là cho ứng dụng PHP nói chuyện với dịch vụ cache qua một file socket trên cùng máy chủ, thay vì qua cổng TCP như 127.0.0.1:6379. Đường đi ngắn hơn giúp mỗi lần đọc, ghi cache nhanh hơn, và quyền của file socket giới hạn được ai kết nối, điều có ích trên hosting dùng chung.

Bài thuộc nhóm quản trị website trên hosting trong chủ đề hosting. Khái niệm và khác biệt giữa hai phần mềm cache xem bài so sánh Memcached và Redis; bài này tập trung vào cách kết nối.

Memcached và Redis thường kết nối với ứng dụng theo cách nào?

Ứng dụng PHP kết nối tới Memcached hoặc Redis theo một trong hai cách: qua TCP/IP (địa chỉ IP và cổng) hoặc qua Unix socket (một file trên cùng máy chủ). Cả hai phần mềm đều chạy như một dịch vụ riêng, lưu dữ liệu trong RAM; WordPress dùng chúng làm object cache thông qua plugin.

Kết nối qua TCP/IP

TCP/IP là bộ giao thức mạng dùng cho mọi kết nối Internet. Khi cache chạy cùng máy, ứng dụng vẫn có thể kết nối qua địa chỉ loopback 127.0.0.1 và cổng mặc định (6379 với Redis, 11211 với Memcached). Đây là cách bắt buộc khi cache nằm ở một máy chủ khác.

Kết nối qua Unix socket

Socket là điểm cuối của một kênh giao tiếp hai chiều giữa hai chương trình. Unix socket (Unix domain socket) là loại socket chỉ dùng giữa các tiến trình trên cùng một máy, hiện diện dưới dạng một file, ví dụ /home/user/redis.sock. Dữ liệu không đi qua ngăn xếp mạng, và quyền đọc ghi file quyết định user nào được kết nối.

Sơ đồ đường đi của một lệnh cache trên cùng máy chủ: qua TCP loopback 127.0.0.1:6379 lệnh đi qua các tầng TCP, IP; qua Unix socket lệnh đi qua file /home/user/redis.sock, Redis không mở cổng; theo tài liệu Redis socket có thể đạt thông lượng cao hơn khoảng 50%

Unix socket nhanh hơn TCP bao nhiêu?

Tài liệu benchmark của Redis ghi rằng, khi client và server cùng máy, Unix domain socket có thể đạt thông lượng cao hơn khoảng 50% so với TCP/IP loopback, tuỳ nền tảng (ví dụ Linux) (Redis benchmark, truy cập 25/10/2026). Cùng tài liệu lưu ý lợi thế này giảm dần khi ứng dụng dùng pipelining (gửi nhiều lệnh một lúc).

Con số trên đo thông lượng của chính Redis, không phải thời gian tải trang. Với website WordPress, mỗi trang chỉ gọi cache vài chục đến vài trăm lần, nên phần tiết kiệm nhờ socket nhỏ hơn nhiều so với lợi ích của việc có object cache. Muốn biết mức cải thiện thật trên website của bạn, hãy đo thời gian phản hồi trang trước và sau khi bật object cache, thay vì dựa vào con số chung.

Lợi ích của Memcached, Redis qua Unix socket trên hosting

Trên hosting, dùng Memcached hoặc Redis qua Unix socket mang lại hai nhóm lợi ích: website bớt truy vấn database nhờ object cache, và kết nối tới cache an toàn hơn vì không mở cổng mạng. Mức lợi cụ thể tuỳ website và cách nhà cung cấp cấu hình dịch vụ cache.

  • Giảm truy vấn database: object cache giữ kết quả truy vấn lặp lại trong RAM, database bớt tải, đặc biệt với trang quản trị và website bán hàng nhiều sản phẩm.
  • Mỗi tài khoản một socket riêng: trên hosting dùng chung, nhà cung cấp có thể chạy một tiến trình cache cho mỗi tài khoản, đặt file socket trong thư mục home. User khác không đọc được cache của bạn nhờ quyền file.
  • Không mở cổng mạng: dịch vụ cache không lắng nghe trên cổng TCP, bớt một điểm có thể bị dò quét.
  • Tài nguyên có giới hạn rõ: bộ nhớ cache tính vào tài nguyên của gói. trong ảnh chụp minh hoạ năm 2020 bên dưới, mỗi dịch vụ cache được cấp 64 MB; con số trên gói hiện hành có thể khác.

Cách dùng Memcached, Redis qua Unix socket trên hosting cPanel

Tên công cụ khác nhau giữa các nhà cung cấp, nhưng quy trình có ba bước: bật extension PHP, bật dịch vụ cache để lấy đường dẫn socket, rồi khai báo đường dẫn đó trong ứng dụng.

Bước 1: Vào Select PHP Version trong cPanel, tab Extensions, tick redis hoặc memcached (tuỳ loại cache bạn dùng) cho phiên bản PHP của website.

Trang Select PHP Version trên cPanel, tab Extensions, hai extension memcached và redis được khoanh để bật

Bước 2: Bật dịch vụ cache trong công cụ của nhà cung cấp. Hệ thống tạo một tiến trình Memcached hoặc Redis riêng cho tài khoản và hiển thị đường dẫn socket.

Plugin Tino Cache trong cPanel: Memcached và Redis đang Enable, đường dẫn Unix socket memcached.sock và redis.sock trong thư mục home, bộ nhớ 64MB mỗi dịch vụ

Hai ảnh chụp năm 2020 trên cPanel 84 với plugin Tino Cache (bản thử nghiệm lúc đó). Gói hosting hiện tại có công cụ bật cache qua socket hay không, hãy kiểm tra trong panel hoặc hỏi bộ phận kỹ thuật.

Bước 3: Khai báo đường dẫn socket trong ứng dụng. Với plugin LiteSpeed Cache của WordPress, mở Cache => tab Object, bật Object Cache, chọn phương thức Redis hoặc Memcached, đặt Host là đường dẫn file socket và Port là 0 (tài liệu LiteSpeed Cache). Lưu lại và xem trạng thái kết nối của plugin báo thành công.

Host: /home/tentaikhoan/.tino/redis.sock
Port: 0

Sau khi bật, theo dõi vài ngày: tỷ lệ cache hit trong plugin, thời gian phản hồi trang quản trị và mức dùng RAM của gói. Website lỗi sau khi bật object cache thì tắt lại để khoanh vùng plugin xung đột.

Khi nào chưa cần Memcached hoặc Redis?

Object cache qua Unix socket không phải lúc nào cũng đáng bật: nếu website ít trang động, gói hosting thiếu RAM hoặc nguyên nhân chậm nằm ở mã nguồn, lợi ích rất nhỏ hoặc còn gây lỗi khó tìm. Ba trường hợp thường gặp:

  • Website ít trang động, đã có page cache: phần lớn lượt xem được phục vụ từ cache trang, object cache gần như không thay đổi gì.
  • Gói hosting nhỏ, RAM sát giới hạn: tiến trình cache chiếm thêm bộ nhớ của gói.
  • Website chậm vì truy vấn viết kém hoặc plugin nặng: cache che bớt triệu chứng; nên sửa nguyên nhân trước.

Các hướng tối ưu khác xem bài cách tối ưu tốc độ website WordPress.

Những câu hỏi thường gặp

Nên chọn Memcached hay Redis cho WordPress?

Cả hai đều dùng được làm object cache. Redis có thêm kiểu dữ liệu và tuỳ chọn lưu xuống đĩa, Memcached đơn giản và nhẹ. Bản hiện hành là Redis 8.10.2 và Memcached 1.6.45 (25/10/2026). So sánh chi tiết ở bài Memcached và Redis.

Unix socket có dùng được khi Redis nằm ở máy chủ khác không?

Không. Unix socket chỉ hoạt động giữa các tiến trình trên cùng một máy. Cache ở máy khác phải kết nối qua TCP, nên đặt mật khẩu và giới hạn IP được truy cập.

Bật object cache có thay được page cache không?

Không. Page cache lưu cả trang HTML đã dựng; object cache lưu kết quả truy vấn và dữ liệu PHP dùng lại. Website WordPress thường dùng page cache trước, rồi thêm object cache khi trang động hoặc trang quản trị còn chậm.

Vì sao plugin báo không kết nối được tới socket?

Thường do dịch vụ cache chưa bật, đường dẫn socket gõ sai, Port chưa đặt về 0, hoặc extension PHP tương ứng chưa được bật cho đúng phiên bản PHP của website.

Cần hosting ổn định cho website? Hosting của Tino dùng ổ NVMe, LiteSpeed và cPanel để bạn tự quản trị. Xem cấu hình và giá trên trang sản phẩm.

Hồng Nhi

Content Manager

Chị Hồng Nhi, "người giữ lửa" đứng sau wiki.tino.org, là một Content Manager tài năng với hành trình sự nghiệp đầy cảm hứng. Tốt nghiệp cử nhân Ngữ văn Anh năm 2017, cử nhân Ngữ văn Nga năm 2019 và Thạc sĩ Quan hệ Quốc tế năm 2024 tại trường Đại học KHXH&NV - ĐHQG TP.HCM, chị sở hữu nền tảng kiến thức vững chắc cùng kinh nghiệm dày dặn trong lĩnh vực truyền thông.Vốn xuất thân từ "xã hội" nhưng với niềm đam mê sáng tạo nội dung giá trị, chị đã "lấn sân" sang lĩnh vực công nghệ và nhanh chóng khẳng định bản thân. Với phương châm "diễn giải cái khó hiểu nhất bằng cách dễ hiểu nhất", chị đã chinh phục độc giả bằng những bài viết blog công nghệ súc tích, dễ hiểu và hữu ích. Đồng hành cùng TinoHost từ những ngày đầu thành lập, chị Hồng Nhi hiện là Content Manager, người trực tiếp quản lý và vận hành wiki.tino.org cùng nhiều website uy tín khác.

Xem thêm bài viết

Bài viết liên quan