Redis stores everything in memory. It uses the disk for snapshots, but what about using the disk when there's not enough memory for storage? (memory is expensive)
Postgres works except it doesn't reclaim disk space without a vacuum full (which requires a lock) so if you're doing a lot of deletes, Postgres is impractical.