redis newbie - cara membuat hash di dalam hash?


12

Saya ingin membuat jenis struktur ini di redis: (pada dasarnya data json)

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

Apa yang saya coba sejauh ini:

Saya telah mencoba untuk membuat hash tanpa hash "sub", hanya untuk memastikan saya memiliki dasar-dasar tepuk bawah. Jadi, inilah yang saya mulai dengan dari 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

Itu sepertinya berhasil. Saya dapat melihat bahwa saya memiliki 2 "catatan" data widget dalam koleksi widget.

Tetapi upaya saya untuk membuat catatan dengan data r1 gagal.

Inilah yang saya coba:

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

Ini menciptakan kunci hash "r1 {extid" dengan nilai hash "50000}"

Setiap saran akan dihargai. Saya pikir masalah saya adalah istilah saya. Saya hanya tidak cukup tahu tentang sintaks redis untuk mengetahui kata-kata apa yang harus digunakan dalam pencarian google saya.

Mungkin saya hanya perlu "meratakan" data seperti ini:

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

Terima kasih.

Jawaban:


14

Redis tidak mendukung struktur data bersarang, dan secara khusus itu tidak mendukung Hash di dalam Hash :) Anda pada dasarnya memiliki pilihan antara dua opsi: baik membuat serial Hash internal dan menyimpannya di bidang Hash atau menggunakan kunci Hash lain dan simpan saja referensi di bidang Hash luar.


1

Saya sarankan ReJSON . Itu dibangun untuk menangani masalah ini dengan tepat.

Anda dapat menggunakan notasi jalur untuk mengakses elemen bersarang.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.