From the documentation we know, redis does compression for data within a range (default is 512). If the hash range exceeds 512, the memory difference will be 10 times.
I did a little experiment for hashes ranging from 1 to 512 and found an interesting pattern.
This graph represents the taken memory (in KB) for 1000 hashes, each of which contains entries from 1 to 512.

. . , - redis , . , 215 216 , 4 8 . 420 421 8 12 . 215 , 1/4, 1/5 1/6-.
:
- - hashmap ? ?
- , 215 216, 215 , , .
- , 1 , 250 , 800 . 2 125 , 2 125 500 . , 300 , !!. ? - ?