sql >> Databasteknik >  >> NoSQL >> Redis

Redis set vs hash

Redis-haschar är bra för att lagra mer komplex data, som du föreslår i din fråga. Jag använder dem för just det - för att lagra objekt med flera attribut som måste cachelagras (specifikt lagerdata för en viss produkt på en e-handelssida). Visst, jag skulle kunna använda en sammanfogad sträng - men det lägger till onödig komplexitet till min klientkod, och det är inte möjligt att uppdatera ett enskilt fält.

Du kan ha rätt - handledningarna kan helt enkelt vara från innan Hashes introducerades. De var tydligt utformade för att lagra objektrepresentationer:http://oldblog.antirez.com/post/redis-weekly-update-1.html

Jag antar att ett problem skulle vara antalet kommandon Redis måste betjäna när ett nytt objekt infogas (n antal kommandon, där n är antalet fält i hashen) jämfört med ett enkelt String SET-kommando. Jag har inte funnit att detta är ett problem än på en tjänst som träffar Redis cirka 1 miljon gånger per dag. Att använda rätt datastruktur för mig är viktigare än en försumbar prestandapåverkan.

(Se även min kommentar om Redis Sets vs. Redis Strings - jag tror att din fråga syftar på Strings men rätta mig om jag har fel!)



  1. Redis beteende med flera samtidiga program som gör läs/del på samma hash-nyckel

  2. Lägg till en sträng i slutet av ett befintligt fält i MongoDB

  3. Kan inte ansluta till MongoDB Atlas (queryTxt ETIMEOUT)

  4. Hur man ansluter till Redis-instans (memorystore) från Googles standardappmotor (Python 3.7)