Stěžejní je schopnost úložiště nalézt nejbližšího následníka podle lexikografického uspořádání. Taková implementace je optimální (lépe to nejde) a typicky se používá něco jak B+ strom, aby vyhledání bylo vždy O(log n).
https://redis.io/commands/scan
"Time complexity: O(1) for every call."
Prave ste poukazali na fakt, ze Redis drzi kluce v hash tabulke a nie v B+strome. Preto si rad pozriem ako vam
SCAN bude vracat "
nejbližšího následníka podle lexikografického uspořádání".
Vasu argumentaciu ste mohli postavit aj na prikaze
ZSCAN, ale ani to by vam nepomohlo, kedze implementacia v Redise pouziva
skip listy a INSERT a REMOVE su spoplatnene komplexitou
O(log n). Predpokladam, ze pre search kluca pre zaciatok iteracie pouzije hash.
Nehovoriac o tom, ze Redis je in-memory store. Co v pripade, ak mate tolko klucov, ze sa vam cela hash tabulka (+ dalsie podporne struktury v pripade Sorted sets) a hodnoty
nevojdu do pamate?