ROLZ conserve le principe général de LZ77, qui consiste à remplacer des suites de symboles par des couples (position d'une occurrence précédente de la suite, longueur de la suite).
À la différence de ceux-ci cependant, la position n'est pas codée telle quelle, mais est remplacée par sa position dans une table de hachage (le codage de la longueur reste identique). L'algorithme utilise plusieurs tables de hachage parmi lesquelles une est choisie de façon symétrique à la compression et à la décompression grâce à une simple modélisation de contextes (comme un PPM de petit ordre).
Certaines variantes comme ROLZ3 sélectionnent une table de hachage par pondération de contextes, ce qui permet d'obtenir de meilleurs ratios de compression à une vitesse moindre.
Un algorithme de type ROLZ n'ayant qu'une unique suite de symboles par table de hachage est équivalent à un algorithme de type LZP.