- An in-memory database but persisted to disk
- A key value store but the values can be complex
- A "data structure server"
- Very fast!
- For performance: it's generally a lot faster than relational databases
- For rapid development: no schema means less code for some uses
- For rapid development: native support for lists, hashes and sets means less code for some uses
- For highly relational data: you can model relationships with namespaced keys but it gets complicated quickly.
- Big data: everything has to live in memory
- Very transactional data: Redis has transaction support but - on good performance settings - offers fewer reliability guarantees than e.g. PostgreSQL.
- Simple object / result / fragment caching - like memcached, but persistent.
- Session storage - again, like memcached, but persistent. Redis is perfect for sessions!
- For more performant / less expensive storage.
- Queues, e.g. Celery and rq, or roll your own.
- Set manipulation, e.g. intersections of followers.
- Install redis with brew or make.
- Try redis-py (pip install redis) or one of the PHP libraries
- Play with redis-cli or the amazing interactive docs.