Co byste mohli udělat, a viděl jsem to na jiných místech kromě mého kódu, je klíčovat hash pomocí přípony. Pravděpodobně máte příponu, která identifikuje každý záznam, zde použiji barvy:
V ČAS VLOŽENÍ:
HMSET Records:red Prod_Color "Red" Prod_Count 12 Prod_Price 300 Prod_Info "In Stock"
HMSET Records:blue Prod_Color "Blue" Prod_Count 8 Prod_Price 310 Prod_Info "In Stock"
/* For each HMSET above, you issue SADD */
SADD Records:Ids red
SADD Records:Ids blue
V ČASU DOTAZU:
/* If you want to get all products, you first get all members */
SMEMBERS Records:Ids
/* ... and then for each member, suppose its suffix is ID_OF_MEMBER */
HGETALL Records:ID_OF_MEMBER
/* ... and then for red and blue (example) */
HGETALL Records:red
HGETALL Records:blue
Pravděpodobně budete chtít použít primary key
jako příponu, protože by vám měla být dostupná ze záznamů relační databáze. Také musíte udržovat sadu členů (např. SREM Records:Ids red
), při mazání hash klíčů (např. DEL Records:red
). A také si pamatujte, že Redis je opravdu dobrý jako vylepšená mezipaměť, musíte ji dobře nastavit, aby uchovala hodnoty (a tím udržela výkon).