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

redis - Utilizzo di hash

Sì, è legato all'efficienza.

Abbiamo chiesto un contributo al sempre disponibile Pieter Noordhuis, uno degli sviluppatori principali di Redis, e ci ha suggerito di utilizzare gli hash Redis. Gli hash in Redis sono dizionari che possono essere codificati in memoria in modo molto efficiente; l'impostazione Redis "hash-zipmap-max-entries" configura il numero massimo di voci che un hash può avere pur essendo codificato in modo efficiente. Abbiamo scoperto che questa impostazione era la migliore intorno a 1000; un valore superiore e i comandi HSET causerebbero una notevole attività della CPU. Per maggiori dettagli, puoi controllare il file sorgente zipmap.

I piccoli hash sono codificati in un modo speciale (zipmap), che è efficiente in termini di memoria, ma rende le operazioni O(N) invece di O(1). Quindi, con una zipmap con 100.000 campi invece di 100 zipmap con 1.000 campi non ottieni vantaggi in termini di memoria, ma tutte le tue operazioni diventano 100 volte più lente.