Redis offers several data types including strings, lists, sets, sorted sets, hashes, and bitmaps. You might choose strings for simple key-value storage, lists for ordered collections, and sets when you need unique items without duplicates.
In depth
Redis supports a variety of data types, each suited for different use cases. Strings are the most basic type, used for storing simple values like numbers or text, making them great for caching. Lists allow for ordered collections of items, which can be used for queuing tasks or managing ordered data. Sets provide a way to store unique elements and support operations like intersections and unions, useful for scenarios requiring distinct values. Sorted sets extend this by associating a score with each element, making them ideal for ranking systems. Hashes are great for representing objects because they can store multiple key-value pairs without creating numerous keys in the database. Each type has specific commands optimized for performance considerations, enabling highly efficient data manipulation and retrieval.
Example scenario
In a social media application, you might use Redis strings to cache user session data for quick access. Lists could manage a feed of recent posts by storing post IDs in order as they are created. For managing unique user interactions, sets could be employed to track users who liked a post, ensuring no duplication. Sorted sets could rank posts based on likes or shares, allowing you to quickly query the most popular content.
Common mistakes
A common mistake is misusing data types, such as using strings for complex objects instead of hashes. This can lead to inefficient data access patterns and increased memory usage. Another mistake is assuming that all Redis data types behave the same way; for instance, not understanding that lists allow duplicate values while sets do not can lead to logic errors in applications. Additionally, neglecting to choose the right data structure for a specific application need can result in performance bottlenecks.
Follow-up questions
- Can you explain the differences between a set and a sorted set?
- What are some specific commands you might use with Redis lists?
- How does Redis handle data persistence for these data types?
- Could you give an example of when you would choose a hash over a string?

Preparing for a system design interview?
- A 7-step method for answering any system design question, plus estimation numbers
- 5 worked designs: URL shortener, rate limiter, chat, news feed and file storage
- Guides to caching, databases, queues, consistency and reliability, with a 4-week study plan
- 306 practice questions with answers on caching, databases, queues, microservices, APIs and more
5 worked designs, a 4-week plan and 306 practice questions with answers.
The material stays free to read online. This is the organised, offline, print-ready PDF edition. Secure payment by PayPal; your personal download link is emailed after payment is confirmed. Digital product, no shipping.