Ja, het heeft te maken met efficiëntie.
We vroegen de altijd behulpzame Pieter Noordhuis, een van de kernontwikkelaars van Redis, om input en hij stelde voor om Redis-hashes te gebruiken. Hashes in Redis zijn woordenboeken die zeer efficiënt in het geheugen kunnen worden gecodeerd; de Redis-instelling 'hash-zipmap-max-entries' configureert het maximale aantal items dat een hash kan hebben terwijl het nog steeds efficiënt wordt gecodeerd. We ontdekten dat deze instelling het beste was rond de 1000; hoger en de HSET-opdrachten zouden merkbare CPU-activiteit veroorzaken. Voor meer details kun je het zipmap-bronbestand bekijken.
Kleine hashes worden op een speciale manier gecodeerd (zipmaps), dat is geheugenefficiënt, maar maakt bewerkingen O(N) in plaats van O(1). Dus met één zipmap met 100.000 velden in plaats van 100 zipmaps met 1k velden krijgt u geen geheugenvoordelen, maar worden al uw bewerkingen 100 keer langzamer.