Redis Roadmap¶
- Roadmap: https://roadmap.sh/redis
1. Overview of Redis / What is it?¶
- 1.1 In-memory Data Structure Store
- 1.2 Key-value Database
- 1.3 Cache
- 1.4 Message Broker
1.5 Core Use Cases¶
- 1.5.1 Caching
- 1.5.2 Real-time Analytics
- 1.5.3 Session Management
- 1.5.4 Pub/Sub Messaging
- 1.5.5 Leaderboards and Counters
1.6 Key Features¶
- 1.6.1 Data Persistence Options
- 1.6.2 Rich Data Structures
- 1.6.3 High Performance and Scalability
1.7 Redis vs Other Databases¶
- 1.7.1 Redis vs SQL/NoSQL DBs
- 1.7.2 When to choose Redis?
2. Getting Started with Redis¶
2.1 Installing Redis Locally¶
- 2.1.1 Using Package Managers
- 2.1.2 Pre-compiled Binaries
- 2.1.3 Using Docker
2.2 Running Redis¶
- 2.2.1 Starting the Server
- 2.2.2 Connecting using Redis CLI
- 2.2.3 Basic Commands / SET, GET
3. First Steps¶
3.1 Basic Data Operations¶
- 3.1.1 and Getting Keys
- 3.1.2 DEL
- 3.1.3 expire
- 3.1.4 TTL
3.2 Overview of Data Types¶
- 3.2.1 Strings, Lists, Sets, Hashes, Sorted Sets
4. Core Data Structures¶
4.1 Strings¶
- 4.1.1 Common Commands: SET, GET, INCR, DECR, APPEND, STRLEN
- 4.1.2 More Commands
- 4.1.3 Usecases
4.2 Lists¶
- 4.2.1 Common Commands: LPUSH, RPUSH, LPOP, RPOP, LRANGE, LINDEX, LLEN, LMOVE
- 4.2.2 More Commands
- 4.2.3 Usecases
4.3 Sets¶
- 4.3.1 Common Commands: SADD, SMEMBERS, SREM, SISMEMBER, SINTER, SCARD, SUNION, SDIFF
- 4.3.2 More Commands
- 4.3.3 Usecases
4.4 Hashes¶
- 4.4.1 Common Commands: HSET, HGET, HGETALL, HDEL, HEXISTS
- 4.4.2 More Commands
- 4.4.3 Usecases
4.5 Sorted Sets¶
- 4.5.1 Common Commands: ZADD, ZRANGE, ZRANGEBYSCORE, ZREM, ZINCRBY, ZRANK, ZCOUNT
- 4.5.2 More Commands
- 4.5.3 Usecases
5. Working with Redis¶
5.1 Key Management¶
- 5.1.1 Naming Conventions
- 5.1.2 Retrieval by Pattern
- 5.1.3 Expiration
5.2 Atomicity in Redis¶
5.3 Batch Operations¶
- 5.3.1 Pipelining
- 5.3.2 MSET / MGET
6. Advanced Data Structures¶
6.1 Bitmaps¶
- 6.1.1 Common Commands: SETBIT, GETBIT, BITCOUNT, BITOP, BITPOS
- 6.1.2 Usecases
6.2 HyperLogLog¶
- 6.2.1 Common Commands: PFADD, PFCOUNT, PFMERGE
- 6.2.2 Usecases
6.3 Streams¶
- 6.3.1 Common Commands: XADD, XREAD, XRANGE, XLEN
- 6.3.2 More Commands
- 6.3.3 Usecases
6.4 Geospatial Indexes¶
- 6.4.1 Common Commands: GEOADD, GEOSEARCH
- 6.4.2 More Commands
- 6.4.3 Usecases
7. Pub/Sub¶
- 7.1 Common Commands: SUBSCRIBE, UNSUBSCRIBE, PUBLISH
- 7.2 More Commands
- 7.3 Usecases
8. Transactions¶
- 8.1 Common Commands: WATCH, EXEC, MULTI
- 8.2 Optimistic Locking
9. Lua Scripting¶
- 9.1 Common Commands: EVAL, EVALSHA
- 9.2 Usecases
10. Persistence Options¶
10.1 Snapshotting (RDB)¶
- 10.1.1 How RDB Works?
- 10.1.2 Configuring Save Interval
- 10.1.3 Usecases / Best Practices
10.2 Append-Only File (AOF)¶
- 10.2.1 How AOF Works?
- 10.2.2 AOF rewrite & compaction
- 10.2.3 Truncation / Corruption
- 10.2.4 Usecases
10.3 No Persistence Option¶
10.4 RDB vs AOF Tradeoffs¶
10.5 Hybrid Persistence¶
10.6 Choosing Right Strategy¶
11. Replication / HA¶
- 11.1 Replication Basics
- 11.2 Redis Sentinel
- 11.3 Clustering
12. Security¶
- 12.1 Authentication
- 12.2 Network Security
- 12.3 SSL/TLS Encryption
13. Monitoring / Optimization¶
13.1 Performance Optimization¶
- 13.1.1 Max Memory Policy
- 13.1.2 Memory Management
- 13.1.3 Slow Log Analysis
- 13.1.4 redis-benchmark
13.2 Monitoring¶
- 13.2.1 Built-in Tools: INFO, MONITOR
- 13.2.2 3rd Party Tools: RedisInsight, RedisCommander
14. Redis Modules¶
- 14.1 RedisJSON
- 14.2 Search
- 14.3 RedisTimeSeries
- 14.4 RedisBloom
15. Managing Redis in Production¶
- 15.1 redis.conf
- 15.2 Important Configurations
15.3 Backup and Recovery¶
- 15.3.1 RDB and AOF Files
15.4 Upgrading Redis¶
- 15.4.1 Minimizing Downtimes
15.5 Disaster Recovery¶
16. Redis Enterprise¶
- 16.1 Enterprise Features
- 16.2 Active-Active geo Distribution
- 16.3 Redis on Flash
- 16.4 Security and Compliance
- 16.5 When to consider enterprise?