Redis MGET

Redis Mget



Giải thích về chuỗi Redis

Các chuỗi là cấu trúc dữ liệu cơ bản và cơ bản nhất được giới thiệu bởi cơ sở dữ liệu Redis. Chuỗi Redis là chuỗi byte an toàn nhị phân. Chúng rất giống các chuỗi thông thường có sẵn trong các ngôn ngữ lập trình như Java và c # .net. Quan trọng nhất, các chuỗi Redis có thể được sử dụng để lưu trữ hầu hết mọi thứ mà bạn thích như chuỗi, số nguyên, JSON được tuần tự hóa, XML và các giá trị nhị phân. Vì kiểu dữ liệu chuỗi Redis là an toàn nhị phân, các đối tượng nhị phân như hình ảnh, video và tài liệu có thể được lưu trữ dễ dàng bằng cách sử dụng chuỗi. Ngoài ra, một chuỗi Redis duy nhất có thể chứa dữ liệu lên đến 512MB.







Hơn nữa, cấu trúc dữ liệu chuỗi Redis thường được sử dụng trong các trường hợp sử dụng sau:



  • Bộ nhớ đệm
    • Lưu trữ phiên
    • Phản hồi API
    • Trang HTML
  • Phản đối
  • Triển khai bitmap & hoạt động bitwise

Các hoạt động chuỗi được sử dụng chủ yếu là SET, GET, MGET và SETNX. Các lệnh INCRBY và INCRBYFLOAT thường được sử dụng để quản lý các bộ đếm được thực hiện bằng cách sử dụng cấu trúc dữ liệu chuỗi Redis. Trong hướng dẫn này, lệnh MGET được trình bày chi tiết.



Lệnh MGET được tiết lộ

Lệnh MGET được sử dụng để lấy các giá trị của các khóa Redis đã cho. Nó chấp nhận một hoặc nhiều khóa làm đối số. Hơn nữa, lệnh MGET hoạt động trên độ phức tạp thời gian O (N) trong đó N là số khóa được chỉ định. Cú pháp của lệnh MGET như sau:





Phím MGET [ Chìa khóa ... ]

Khi thực hiện lệnh MGET, nó trả về một mảng các giá trị được lưu trữ tại các khóa Redis được chỉ định. Nếu khóa không tồn tại, nó sẽ trả về giá trị đặc biệt không. Tương tự, nếu khóa không chứa giá trị chuỗi, không giá trị được trả về.

Trường hợp sử dụng: Tìm nạp tất cả các phản hồi API được lưu trong bộ nhớ cache

Hãy giả sử một tình huống trong đó kiểu dữ liệu chuỗi Redis được sử dụng để triển khai bộ đệm ẩn chứa các phản hồi API gần đây. Chúng tôi sử dụng lệnh SET để lưu trữ một số phản hồi API giả cho mục đích trình diễn.



bộ dummyhost / khách hàng 'ricky, bernard, mary, samuel, joe' bộ dummyhost / các nhà cung cấp 'jimmy, jeremy, andrew, hera' bộ dummyhost / hóa đơn '{'hóa đơn': [{'hóa đơn_id': 1, 'hóa đơn_ thanh toán': 1000}, {'hóa đơn_id': 2, 'hóa đơn_ thanh toán': 3400}]}'

Chúng tôi lưu trữ một vài giá trị chuỗi và một đối tượng JSON được tuần tự hóa bằng cách sử dụng kiểu dữ liệu chuỗi Redis.

Bây giờ, hãy sử dụng lệnh MGET để truy xuất tất cả các phản hồi trong mỗi lệnh gọi API cùng một lúc.

mget dummyhost / khách hàng dummyhost / nhà cung cấp dummyhost / hóa đơn

Đầu ra:

1 ) 'ricky, bernard, mary, samuel, joe'

hai ) 'jimmy, jeremy, andrew, hera'

3 ) '{' hóa đơn ': [{' ID hóa đơn ': 1,' bill_payment ': 1000}, {' ID hóa đơn ': hai, ' bill_payment ': 3400}]}'

Như mong đợi, các giá trị trong mỗi khóa được trả về dưới dạng một mảng.

Chỉ định một khóa không tồn tại

Như đã đề cập, lệnh MGET trả về giá trị đặc biệt không khi một khóa không tồn tại được cung cấp. Hãy chỉ định một khóa không tồn tại được gọi là “nonexistingkey” cho lệnh MGET và thực hiện ví dụ trước như sau:

mget dummyhost / khách hàng dummyhost / nhà cung cấp dummyhost / khóa không có hóa đơn

Như bạn có thể thấy, giá trị cuối cùng trong mảng là không được liên kết với khóa Redis không tồn tại.

Nhìn chung, lệnh MGET là một ứng cử viên lý tưởng khi chúng ta cần truy xuất các giá trị chuỗi được lưu trữ tại nhiều khóa trong một lần gọi hơn là gọi lệnh GET nhiều lần.

Sự kết luận

Tóm lại, lệnh MGET hoạt động trên cấu trúc dữ liệu chuỗi Redis để trả về các giá trị được lưu trữ tại nhiều khóa trong một lần gọi. Nó chấp nhận một hoặc nhiều khóa Redis làm đối số. Như đã nhấn mạnh, lệnh MGET hoạt động ở độ phức tạp thời gian O (N). Trường hợp sử dụng đã chỉ cho bạn cách sử dụng lệnh MGET để tìm nạp một số phản hồi API được lưu trữ tại nhiều khóa một cách hiệu quả.