Ja, det er relateret til effektivitet.
Vi bad den altid hjælpsomme Pieter Noordhuis, en af Redis’ kerneudviklere, om input, og han foreslog, at vi brugte Redis-hashes. Hashes i Redis er ordbøger, der kan kodes i hukommelsen meget effektivt; Redis-indstillingen 'hash-zipmap-max-entries' konfigurerer det maksimale antal poster, en hash kan have, mens den stadig kodes effektivt. Vi fandt, at denne indstilling var bedst omkring 1000; højere, og HSET-kommandoerne ville forårsage mærkbar CPU-aktivitet. For flere detaljer kan du tjekke zipmap-kildefilen.
Små hashes er kodet på en speciel måde (zipmaps), som er hukommelseseffektiv, men gør operationer O(N) i stedet for O(1). Så med et zipmap med 100.000 felter i stedet for 100 zipmaps med 1k. felter opnår du ingen hukommelsesfordele, men alle dine operationer bliver 100 gange langsommere.