As a newb to non-relational databases, but planning on learning one soon, what is the advantage of MongoDB vs Redis? I'm planning to use ruby with either, but was interested if there was a reason to pick one over the other.
I don't think you should just learn one; they are all used for different niches. It depends how your app trades off different things (consistency, reliability of reads, reliability of writes, speed of reads, speed of writes, efficiency of hardware use, and so on).
They're really two different beasts. Mongo stores things in a manner similar to a relational DB (minus the relations). Think of it as a store for JSON that allows indexing and SQL-style queries using a JSON style syntax. Redis data structures are closer to what you'd find in computer science books (lists, sets, hashes, etc.). You should explore both and see what meets your needs.
Redis is for flat structures. MongoDB is for nested.
In both cases, (unlike CouchDB) you can alter data structures by more complex means than simply replacing the whole thing (such as incrementing a counter). In both (again unlike CouchDB) the updates overwrite in place and do not waste space (but also do not preserve past versions or allow readers to overlap writers).
Redis is for stuff that fits in memory. MongoDB scales up to "big data", provided the individual items are moderately sized.
Redis runs in RAM so it's blazingly fast. MongoDB is about as fast as MySQL.
Redis is single threaded so only one operation runs at once (the speed makes this mostly not a problem). Some operations globally block MongoDB, some can run in parallel.
In both, operations are atomic. Redis has transactions of a sort that group operations and ensure the data they relate to is unchanged. MongoDB operations can't be grouped into a transaction, but they can be a lot more complex so they effectively become a transaction (limited to operating on one data item).
That totally depends on what you want to do with Redis/MongoDB. Do you intend to use it as your primary data store? AFAIK One of MongoDB's goals is to be useful for a lot of things you'd normally use a relational database for. Redis on the other hand has a lot of nice things to handle more specialized cases of data.
(I work on MongoDB, but trying to give a balanced opinion.)
Redis is a great key-value store, MongoDB is more of a fully-featured database. Redis has some nice set operations and is pretty easy to learn (all of the commands are here: http://redis.io/commands). MongoDB is also pretty easy to learn (click the "Try it out" button at http://mongodb.org/), but there are a lot of advanced features to learn about.
So, if you need a key-value store, Redis is a great choice. If you want to do something more complex, MongoDB would probably work better.