Reddit has different buckets for Top posts. They have "This Hour", "Today", "This Week", "This Month" "This Year" "All Time". The best way I can think of to create these lists would be to save each vote with a timestamp so that you can calculate the score of a post for each bucket. This would be an expensive query but they could get away with it since Top is the same for all users and doesn't change very much so they could cache the query results.
This is just my best guess of what's going on but I'm curious, is this what Reddit is actually doing or is there a better way?