So when you server dies you lose the changes since the last flush. I would not use as a primary storage for data you cannot afford to lose.
Have a look at this: http://redis.io/topics/persistence
Edit: you can configure redis to flush on every command that changes data...but you probably wouldn't want to use redis that way :)
Edit: Also, you probably have bigger problems if your database goes down or your cluster falls off the map somehow.
Very few apps can make do with only a key-value store and if you have to throw a relational db in the mix, why introduce more moving parts unless absolutely necessary? ACID, referential integrity, SQL. Sometimes it feels people are willing to ditch all this for very little gain.
Let's face it, how many apps out there can't really run a beefy relational DB with potentially an absurd amount of RAM?
Could you please elaborate on this point? I'm thinking of using Redis precisely in that manner and would love know about the drawbacks.