Come funziona l'algoritmo di Hashing Consistente? Perché è necessario nella progettazione di un cluster di cache distribuito, ad esempio con 20 server Redis, e come minimizza il numero di chiavi che devono essere spostate quando si aggiunge o si rimuove un nodo?