sql >> Database >  >> NoSQL >> Redis

Redis-set versus hash

Redis-hashes zijn goed voor het opslaan van complexere gegevens, zoals u in uw vraag suggereert. Ik gebruik ze precies daarvoor - om objecten op te slaan met meerdere attributen die in de cache moeten worden opgeslagen (met name voorraadgegevens voor een bepaald product op een e-commercesite). Natuurlijk zou ik een aaneengeschakelde string kunnen gebruiken, maar dat voegt onnodige complexiteit toe aan mijn klantcode, en het bijwerken van een afzonderlijk veld is niet mogelijk.

Je hebt misschien gelijk - de tutorials zijn misschien gewoon van voordat Hashes werden geïntroduceerd. Ze zijn duidelijk ontworpen voor het opslaan van objectrepresentaties:http://oldblog.antirez.com/post/redis-weekly-update-1.html

Ik veronderstel dat een zorg het aantal commando's zou zijn dat Redis moet uitvoeren wanneer een nieuw item wordt ingevoegd (n aantal commando's, waarbij n het aantal velden in de hash is) in vergelijking met een eenvoudig String SET-commando. Ik heb dit nog geen probleem gevonden op een dienst die Redis ongeveer 1 miljoen keer per dag bereikt. Het gebruik van de juiste datastructuur is voor mij belangrijker dan een verwaarloosbare prestatie-impact.

(Zie ook mijn opmerking over Redis Sets vs. Redis Strings - ik denk dat je vraag verwijst naar Strings, maar corrigeer me als ik het mis heb!)



  1. Kan docker mongo-afbeelding niet starten in Windows

  2. Node Js:Redis-taak wordt niet voltooid nadat de taak is voltooid

  3. Mongoose String naar ObjectID

  4. MongoDB $allElementsTrue