- Hầu hết (Nhưng Không phải Tất cả) Đối tượng Sử dụng Khóa
- Sử dụng Không gian tên
- Lấy tất cả các khoá hiện có
Giống như các công cụ cơ sở dữ liệu không quan hệ khác, việc tập trung vào cách Redis xử lý các cấu trúc và liên kết dữ liệu đôi khi có thể khó khăn. Điều này đặc biệt đúng khi Redis được so sánh với cơ sở dữ liệu quan hệ truyền thống hơn với các bảng được cách ly, mỗi bảng chứa nhiều hàng và cột với dữ liệu chung.
Vì Redis không quan hệ nên mọi thứ trong hệ thống đều được định cấu hình bằng key/value
cơ bản các cặp ở cấp độ đơn giản nhất. Đặc biệt, trong quá trình phát triển, có thể khó theo dõi mọi thứ đã tồn tại trong cơ sở dữ liệu, vì vậy trong hướng dẫn ngắn gọn này, chúng tôi sẽ đề cập đến phương pháp truy xuất tất cả các khóa keys
từ cơ sở dữ liệu Redis với một số lệnh đơn giản.
Hầu hết (Nhưng Không phải Tất cả) Đối tượng Sử dụng Khóa
Đối với phần lớn dung lượng lưu trữ dữ liệu với Redis, dữ liệu sẽ được lưu trữ trong một key/value
đơn giản đôi. Điều này được thể hiện rõ nhất qua redis-cli
(giao diện dòng lệnh) sử dụng GET
và SET
lệnh.
Ví dụ:chúng tôi có thể muốn lưu trữ một số thông tin về books
, chẳng hạn như title
và author
trong số một số mục yêu thích của chúng tôi.
> SET title "The Hobbit"
OK
> SET author "J.R.R. Tolkien"
OK
title
và author
là các khóa keys
chúng tôi đã đặt và các giá trị chuỗi thực tế đã được chỉ định sau đó. Vì vậy, chúng tôi có thể xem chúng bằng GET
, như vậy:
> GET title
"The Hobbit"
> GET author
"J.R.R. Tolkien"
Sử dụng Không gian tên
Đó là tất cả tốt và tốt, nhưng làm thế nào để chúng tôi thêm một cuốn sách khác? Chúng tôi không thể sử dụng lại cùng một title
và author
hoặc chúng tôi sẽ ghi đè dữ liệu hiện có. Thay vào đó, chúng ta có thể sử dụng cú pháp không gian tên bằng cách sử dụng :
dấu phân tách và đặt mỗi title
hoặc author
nhập một số duy nhất key
:
> SET title:1 "The Hobbit"
OK
> SET author:1 "J.R.R. Tolkien"
OK
> SET title:2 "The Silmarillion"
OK
> SET author:2 "The Silmarillion"
OK
Hiện đang sử dụng GET
yêu cầu thêm khóa keys
số duy nhất nữa:
> GET title:1
"The Hobbit"
> GET title:2
"The Silmarillion"
Truy xuất tất cả các khóa hiện có
Hóa ra, mọi SET
lệnh mà chúng tôi đã phát hành ở trên đã tạo một khóa keys
mới, duy nhất trong cơ sở dữ liệu Redis của chúng tôi. Để nhận danh sách tất cả các khóa keys
hiện tại tồn tại, chỉ cần sử dụng KEYS
lệnh:
> KEYS *
1) "title:1"
2) "title:2"
3) "title"
4) "author:2"
5) "author"
6) "author:1"
Bằng cách theo dõi KEYS
có dấu hoa thị (*
) - hoạt động như một tìm kiếm theo ký tự đại diện - chúng tôi đang yêu cầu Redis truy xuất tất cả các khóa trong hệ thống. Do đó, chúng ta không chỉ thấy hai title
ban đầu của chúng ta và author
cũng như bốn phiên bản được liệt kê sau đó.
Cú pháp sau KEYS
có thể được sử dụng để tìm kiếm các từ hoặc cụm từ cụ thể trong khóa hoặc đối sánh chính xác. Ở đây chúng tôi muốn tất cả các khóa có chứa văn bản 'title'
:
> KEYS *title*
1) "title:1"
2) "title:2"
3) "title"
THẬN TRỌNG:Như đã đề cập trong tài liệu chính thức, bạn nên tránh sử dụng KEYS
lệnh trên cơ sở dữ liệu rất lớn, nhưng đặc biệt tránh sử dụng nó trong môi trường sản xuất. Kể từ KEYS
đang trả lại tiềm năng mọi khóa trong hệ thống, điều này có thể có tác động tiêu cực đáng kể đến hiệu suất.