Redis
 sql >> Database >  >> NoSQL >> Redis

Scrivere una query per aggiungere più valori a una chiave negli hash REDIS?

Quello che potresti fare, e l'ho visto in altri posti oltre al mio codice, è digitare l'hash usando un suffisso. Probabilmente hai un suffisso che identifica ogni record, userò i colori qui:

ALL'ORA DI INSERIMENTO:

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

AL MOMENTO DELLA RICHIESTA:

/* 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

Probabilmente vorrai usare la primary key come suffisso, poiché dovrebbe essere disponibile dai record del database relazionale. Inoltre, devi mantenere l'insieme dei membri (ad es. SREM Records:Ids red ), quando si eliminano le chiavi hash (ad es. DEL Records:red ). E ricorda anche che Redis è davvero buono come cache migliorata, devi configurarlo bene per persistere i valori (e mantenere le prestazioni con quello).