Redis CLI là gì: Thực hành dùng dòng lệnh để tương tác với Redis

Redis là một trong những hệ quản trị cơ sở dữ liệu phổ biến nhờ tốc độ xử lý nhanh và tính linh hoạt. Để tương tác trực tiếp với Redis, Redis CLI – giao diện dòng lệnh của Redis, là công cụ không thể thiếu cho lập trình viên và quản trị viên. 

Đọc bài viết này để hiểu rõ hơn về:

  • Khái niệm Redis và CLI, các thuật ngữ cần biết để làm việc với Redis CLI
  • Lợi ích của việc sử dụng Redis CLI
  • Các cách kết nối Redis CLI
  • Cách dùng một số lệnh cơ bản và một số tính năng nâng cao

Tổng quan về Redis CLI

Redis là gì?

Redis là một hệ thống cơ sở dữ liệu NoSQL dạng key-value được lưu trữ trong bộ nhớ (in-memory), nổi tiếng với tốc độ truy xuất cực nhanh và khả năng hỗ trợ nhiều kiểu dữ liệu đa dạng như chuỗi (string), danh sách (list), tập hợp (set), bảng băm (hash),…

Redis thường được sử dụng để lưu trữ cache, phiên làm việc (session), hàng đợi tin nhắn hoặc các dữ liệu cần truy xuất tốc độ cao.

Đọc thêm: Redis là gì: Tổng hợp tính năng hữu ích nhất của Redis

CLI là gì?

CLI (Command Line Interface) là một hình thức giao diện người dùng qua dòng lệnh, cho phép bạn tương tác trực tiếp với phần mềm hoặc hệ thống bằng cách nhập các lệnh trên bàn phím trong terminal hoặc command prompt.

CLI rất phổ biến trong phát triển phần mềm và quản trị hệ thống vì sự nhanh chóng, linh hoạt và khả năng tự động hóa cao.

Redis CLI là gì?

Redis CLI (Command Line Interface) là công cụ dòng lệnh chính thức được được cài đặt cùng với Redis cho phép người dùng có thể tương tác trực tiếp với Redis server. Thay vì phải xây dựng ứng dụng hay viết code để giao tiếp với Redis, Redis CLI cho phép gửi các lệnh Redis trực tiếp qua terminal hoặc command prompt một cách nhanh chóng và tiện lợi.

Redis CLI hoạt động như một giao diện dòng lệnh, giúp bạn thực hiện mọi thao tác quản lý và truy vấn dữ liệu trên Redis, từ việc lưu trữ, đọc, xóa dữ liệu cho đến kiểm tra trạng thái máy chủ hay cấu hình các tham số. Công cụ này rất hữu ích cho lập trình viên, quản trị viên hệ thống hoặc bất kỳ ai muốn kiểm thử và vận hành Redis một cách trực tiếp.

Các khái niệm quan trọng của Redis CLI

  • Server và Client: Redis server là nơi lưu trữ và xử lý dữ liệu, còn Redis CLI đóng vai trò là client, gửi lệnh và nhận kết quả từ server.
  • Lệnh Redis: Redis CLI cho phép bạn nhập trực tiếp các lệnh Redis chuẩn như SET, GET, DEL, EXPIRE,… để thao tác với dữ liệu theo mô hình key-value hoặc các cấu trúc dữ liệu khác mà Redis hỗ trợ.
  • Kết nối Redis: Redis CLI mặc định kết nối tới server trên localhost và cổng 6379, nhưng bạn có thể tùy chỉnh kết nối đến Redis server trên máy khác hoặc sử dụng mật khẩu nếu server được bảo vệ.
  • Phiên làm việc tương tác: Khi khởi chạy Redis CLI, bạn sẽ vào chế độ tương tác (interactive mode), nơi bạn nhập lệnh từng dòng và nhận kết quả ngay tức thì.
  • Batch commands: Redis CLI cũng hỗ trợ chạy nhiều lệnh cùng lúc qua file hoặc pipe, giúp tự động hóa hoặc thực thi các thao tác phức tạp.

Lợi ích của Redis CLI

Dễ dàng sử dụng và không cần cài đặt thêm: Redis CLI được cài đặt sẵn cùng với Redis, có giao diện dòng lệnh đơn giản, dễ hiểu giúp cả người mới bắt đầu và chuyên gia đều nhanh chóng làm quen.

Giao tiếp trực tiếp, phản hồi nhanh chóng: Redis CLI cho phép người dùng gửi lệnh trực tiếp tới Redis server và nhận kết quả ngay lập tức, giúp kiểm tra, thử nghiệm và thao tác dữ liệu nhanh hơn rất nhiều so với viết code hoặc dùng giao diện phức tạp.

Hỗ trợ đầy đủ các tính năng Redis: Bạn có thể thực hiện gần như tất cả các thao tác trên Redis, từ quản lý key-value cơ bản đến chạy các script phức tạp mà không cần phải cài thêm phần mềm hay công cụ khác.

Dễ dàng sử dụng và học hỏi: Giao diện dòng lệnh đơn giản, dễ hiểu giúp cả người mới bắt đầu và chuyên gia đều nhanh chóng làm quen và thao tác hiệu quả với Redis.

Tính năng tương tác và tự động hóa: Redis CLI có chế độ interactive giúp nhập lệnh từng bước, đồng thời hỗ trợ chạy hàng loạt lệnh từ file hoặc pipe, rất hữu ích cho tự động hóa và quản trị hệ thống.

Tiện lợi cho việc debug và giám sát: Với các lệnh như MONITOR hay INFO, người dùng có thể dễ dàng theo dõi hoạt động của Redis và phát hiện vấn đề nhanh chóng.

Không cần cài đặt phức tạp: Redis CLI đi kèm sẵn khi bạn cài Redis, không cần thêm bất kỳ công cụ hay plugin nào khác, giúp tiết kiệm thời gian thiết lập.

Hướng dẫn kết nối Redis CLI

Để có thể thao tác với Redis CLI chúng ta cần cài đặt Redis trước. Bạn có thể tham khảo cách cài đặt Redis trong bài viết Redis là gì.

Kết nối với Redis Server

Để kết nối với Redis server bằng Redis CLI, ta sử dụng lệnh sau:

redis-cli -h <hostname> -p <port> -a <password>

Trong đó:

  • -h <hostname>: Địa chỉ IP hoặc tên miền của Redis server (mặc định là 127.0.0.1).
  • -p <port>: Cổng Redis server (mặc định là 6379).
  • -a <password>: Mật khẩu để xác thực (nếu Redis server yêu cầu).

Kết nối qua SSL/TLS

Để kết nối Redis CLI qua SSL/TLS, bạn cần Redis phiên bản 6.0 trở lên và Redis CLI phải được biên dịch với hỗ trợ TLS. Đảm bảo rằng Redis server đã được cấu hình để chấp nhận kết nối TLS. Lệnh kết nối qua TLS như sau:

redis-cli -h <hostname> -p <port> --tls --cacert <ca-cert-file> --cert <client-cert-file> --key <client-key-file> -a <password>

Trong đó:

  • --tls: Bật chế độ kết nối TLS.
  • --cacert <ca-cert-file>: Đường dẫn đến chứng chỉ CA (Certificate Authority) để xác thực server.
  • --cert <client-cert-file>: Đường dẫn đến chứng chỉ client (nếu Redis server yêu cầu xác thực client).
  • --key <client-key-file>: Đường dẫn đến khóa riêng của client (nếu Redis server yêu cầu xác thực client).
  • -a <password>: Mật khẩu để xác thực (nếu Redis server yêu cầu).

Một số lệnh cơ bản trong Redis CLI

Thao tác với dữ liệu cơ bản

Khi bắt đầu với Redis CLI, bạn sẽ thường xuyên sử dụng các lệnh cơ bản để thao tác với dữ liệu như:

  • SET key value: Lưu giá trị cho một khóa cụ thể.
  • GET key: Lấy giá trị của khóa đó.
  • DEL key: Xóa khóa khỏi Redis.
  • EXPIRE key seconds: Đặt thời gian sống cho khóa (tính bằng giây).
  • KEYS pattern: Liệt kê các khóa khớp với mẫu (pattern).

Ví dụ 1: Dùng lệnh dưới đây để tạo một khóa tên là username với giá trị “alice” trong Redis. Nếu khóa đã tồn tại, giá trị sẽ được cập nhật lại.

SET username "alice"

Ví dụ 2: Dùng lệnh dưới đây để lấy ra giá trị hiện tại của khóa username. Nếu khóa không tồn tại, Redis trả về (nil).

GET username

Nhập chuỗi có chứa dấu cách (Quoting và Escaping String)

Khi giá trị bạn muốn lưu chứa dấu cách hoặc ký tự đặc biệt, Redis CLI yêu cầu bạn phải đặt chuỗi đó trong dấu nháy kép hoặc nháy đơn để đảm bảo toàn bộ chuỗi được hiểu đúng.

Ví dụ:

SET greeting "Hello World"
GET greeting

Ngoài ra, ta cũng có thể dùng dấu \ để escape ký tự đặc biệt hoặc dấu cách:

SET message Hello\ World
GET message

Kết quả sẽ trả về:

Hello World

Chèn dữ liệu hàng loạt

Nếu cần nhập nhiều lệnh Redis cùng lúc, cách tiện lợi nhất là viết các lệnh đó vào một file văn bản, rồi chạy Redis CLI để thực thi tất cả. Ví dụ, ta tạo file commands.txt với nội dung:

SET user:1 "Alice"
SET user:2 "Bob"
SET user:3 "Charlie"

Sau đó chạy:

redis-cli < commands.txt

Redis CLI sẽ đọc từng dòng trong file, thực hiện lần lượt các lệnh SET để lưu 3 khóa user:1, user:2, user:3 với các giá trị tương ứng. Đây là cách nhanh gọn để nhập nhiều dữ liệu mà không cần gõ thủ công. 

Lấy dữ liệu từ chương trình khác

Redis CLI rất linh hoạt khi bạn kết hợp nó với các công cụ dòng lệnh khác trong shell. Ví dụ, ta có thể lấy danh sách các khóa rồi dùng grep để lọc:

redis-cli KEYS "user:*" | grep "user:2"

Trong đó:

  • Lệnh redis-cli KEYS "user:*" trả về danh sách tất cả các khóa bắt đầu bằng user:.
  • grep "user:2" lọc ra những khóa có chứa user:2.

Chạy liên tục một lệnh

Trong một số trường hợp, bạn muốn lặp lại một lệnh Redis nhiều lần, ví dụ như để theo dõi trạng thái hay test kết nối. ta có thể dùng vòng lặp trong shell như sau:

while true; do redis-cli PING; sleep 1; done

Lệnh trên sẽ gửi lệnh PING đến Redis mỗi giây và hiển thị kết quả, giúp giám sát hoạt động Redis liên tục. Trong đó:

  • while true; do ... done là vòng lặp vô hạn trong shell.
  • Trong mỗi vòng, redis-cli PING gửi lệnh PING tới Redis server, trả về PONG nếu server đang hoạt động.
  • sleep 1 tạm dừng 1 giây giữa các lần gửi, tránh làm quá tải server.

Một số tính năng nâng cao

Chạy nhiều lệnh từ file

Ta có thể lưu hàng loạt lệnh Redis vào một file văn bản và thực thi cùng lúc bằng Redis CLI. Ví dụ, giả sử ta có file commands.txt với nội dung:

SET key1 "value1"
SET key2 "value2"
GET key1
GET key2

Sau đó ta chỉ cần chạy lệnh sau để thực hiện tất cả các lệnh trong file:

cat commands.txt | redis-cli

Hoặc:

redis-cli < commands.txt

Theo dõi hoạt động server theo thời gian thực

Lệnh MONITOR giúp bạn xem tất cả các lệnh mà Redis server đang xử lý ngay lập tức, theo thời gian thực.

redis-cli MONITOR

Lưu ý: Để thoát khỏi chế độ monitor, nhấn Ctrl+C. Nên thận trọng khi sử dụng MONITOR trên môi trường production vì có thể ảnh hưởng đến hiệu năng.

Kiểm tra thống kê hoạt động của server

Ta có thể lấy thông tin chi tiết về trạng thái Redis server, như bộ nhớ đang sử dụng, số lượng kết nối, số lệnh đã xử lý với lệnh INFO:

redis-cli INFO

Bạn cũng có thể lấy thông tin cụ thể theo từng section:

redis-cli INFO memory
redis-cli INFO replication  
redis-cli INFO stats

Câu hỏi thường gặp về Redis CLI

Có thể chỉ cài đặt mỗi Redis CLI không?

Có thể. Ta có thể cài riêng Redis CLI mà không cần cài toàn bộ Redis server. Trên Linux, nhiều bản phân phối cho phép cài gói redis-tools hoặc redis-client riêng biệt, giúp dùng CLI để kết nối và quản lý Redis từ xa mà không cần chạy server trên máy.

Có thể sử dụng Redis CLI với nhiều cơ sở dữ liệu không?

Có thể. Redis hỗ trợ mặc định 16 database (từ 0 đến 15) nên ta có thể dùng lệnh SELECT <số_db> trong Redis CLI để chuyển đổi giữa các database khác nhau trong cùng một server và thao tác trên từng database riêng biệt.

SELECT 0    # Chuyển sang database 0 (mặc định)
SELECT 1    # Chuyển sang database 1
SELECT 15   # Chuyển sang database 15

Có thể xoá dữ liệu trong Redis cache bằng CLI không?

Ta có thể dùng các lệnh như:

  • DEL key1 key2 ...: Xóa một hoặc nhiều key cụ thể
  • FLUSHDB: Xóa toàn bộ dữ liệu trong database hiện tại.
  • FLUSHALL: Xóa tất cả dữ liệu trên toàn bộ các database của Redis server.

Tuy nhiên cần lưu ý là các lệnh này xóa dữ liệu ngay lập tức, nên hãy cẩn thận khi sử dụng trên môi trường production.

Tổng kết

Redis CLI không chỉ đơn thuần là công cụ gửi lệnh đến Redis server mà còn là trợ thủ đắc lực giúp bạn quản lý, debug và tối ưu hệ thống một cách nhanh chóng và trực quan. Việc thành thạo Redis CLI sẽ giúp bạn tiết kiệm thời gian, giảm thiểu lỗi và nâng cao hiệu suất phát triển ứng dụng. 

ITviec hy vọng bài viết trên đã cung cấp cho bạn những thông tin hữu ích giúp bạn hiểu rõ hơn về Redis CLI.

TÁC GIẢ
Mỹ Duyên
Mỹ Duyên

Content Writer

Là cử nhân ngành Data Science, Duyên có hơn 1 năm kinh nghiệm nghiên cứu trong ngành Data và tập trung vào AI, phân tích dữ liệu. Thông qua những bài viết từ cơ bản đến nâng cao thuộc lĩnh vực cơ sở dữ liệu, Duyên mang đến cho độc giả những cái nhìn toàn diện và mới mẻ về thế giới công nghệ thông tin và dữ liệu.