Very cool. If you have a recent enough version of Redis, you may want to move away from doing the lookup using KEYS and move to SCAN (<a href="http://redis.io/commands/scan" rel="nofollow">http://redis.io/commands/scan</a>). KEYS will work for a while, but with a large enough DB it can become a very slow operation so it's not typically recommended for a production system.<p>Also, just curious, I see that the original url is encoded in the key, so the key is "<short>||<original>". Since the key is already a hash, it seems that you could eliminate having to scan over every key in Redis by making each key be only "<short>" and having an additional field in the hash for "original". Then a lookup becomes simply an HGETALL (if you need to get the "count" field, otherwise just an HGET for the "original" field). I might be missing something though! </armchair programming>