redis newbie - làm thế nào để tạo băm trong một hàm băm?


12

Tôi muốn tạo kiểu cấu trúc này trong redis: (về cơ bản là dữ liệu json)

{
    "id": "0001",
    "name":"widget ABC",
    "model": "model123",
    "service":"standard",
    "admin_password": 82616416,
    "r1":
        {
            "extid":"50000",
            "password":"test123",
        },
    "r2":
        {
            "ext":"30000",
            "password":"test123",
        },
}

Những gì tôi đã cố gắng cho đến nay:

Tôi đã cố gắng tạo một hàm băm mà không có băm "phụ", chỉ để đảm bảo rằng tôi có những điều cơ bản. Vì vậy, đây là những gì tôi bắt đầu với từ redis-cli:

HMSET widget:1 id 0001 name 'widget ABC' model 'model123' service standard admin_password 82616416
HMSET widget:2 id 0002 name 'widget ABC' model 'model123' service standard admin_password 12341234

Điều đó dường như làm việc. Tôi có thể thấy rằng tôi có 2 "bản ghi" dữ liệu widget trong bộ sưu tập widget.

Nhưng nỗ lực của tôi để tạo một bản ghi với dữ liệu r1 không thành công.

Đây là những gì tôi đã cố gắng:

HMSET widget:3 id 0002 name 'widget ABC' model 'model123' service standard admin_password 12341234 r1{extid 50000} 

Điều này tạo ra khóa băm "r1 {extid" với giá trị băm là "50000}"

Mọi lơi đê nghị đêu nên được đanh gia cao. Tôi nghĩ vấn đề của tôi là biệt ngữ của tôi. Tôi chỉ không biết đủ về cú pháp redis để biết những từ nào sẽ được sử dụng trong tìm kiếm google của tôi.

Có lẽ tôi chỉ phải "làm phẳng" dữ liệu như vậy:

HMSET widget:3 id 0002 name 'widget ABC' model 'model123' service standard admin_password 12341234 r1_extid 50000 r1_password test123 r2_extid 30000 r2_password test123

Cảm ơn.

Câu trả lời:


14

Redis không hỗ trợ các cấu trúc dữ liệu lồng nhau và cụ thể là nó không hỗ trợ Hash bên trong Hash :) Về cơ bản, bạn có một lựa chọn giữa hai tùy chọn: hoặc tuần tự hóa Hash nội bộ và lưu trữ nó trong trường Hash hoặc sử dụng khóa Hash khác và chỉ cần giữ một tham chiếu đến nó trong một trường của Hash bên ngoài.


Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.