Redis logo

Redis

Open source (BSD licensed), in-memory data structure store
53.1K
40.3K
+ 1
3.9K

What is Redis?

Redis is an open source (BSD licensed), in-memory data structure store, used as a database, cache, and message broker. Redis provides data structures such as strings, hashes, lists, sets, sorted sets with range queries, bitmaps, hyperloglogs, geospatial indexes, and streams.
Redis is a tool in the In-Memory Databases category of a tech stack.
Redis is an open source tool with GitHub stars and GitHub forks. Here鈥檚 a link to Redis's open source repository on GitHub

Who uses Redis?

Companies
6501 companies reportedly use Redis in their tech stacks, including Uber, Airbnb, and Pinterest.

Developers
44092 developers on StackShare have stated that they use Redis.

Redis Integrations

Datadog, Presto, Spring Data, Clever Cloud, and Netdata are some of the popular tools that integrate with Redis. Here's a list of all 107 tools that integrate with Redis.
Pros of Redis
882
Performance
540
Super fast
510
Ease of use
441
In-memory cache
321
Advanced key-value cache
190
Open source
180
Easy to deploy
163
Stable
153
Free
120
Fast
40
High-Performance
39
High Availability
34
Data Structures
31
Very Scalable
23
Replication
21
Great community
21
Pub/Sub
17
"NoSQL" key-value data store
14
Hashes
12
Sets
10
Sorted Sets
9
Lists
8
BSD licensed
8
NoSQL
7
Integrates super easy with Sidekiq for Rails background
7
Async replication
7
Bitmaps
6
Keys with a limited time-to-live
6
Open Source
5
Strings
5
Lua scripting
4
Hyperloglogs
4
Awesomeness for Free!
3
Transactions
3
Runs server side LUA
3
outstanding performance
3
Networked
3
LRU eviction of keys
3
Written in ANSI C
3
Feature Rich
2
Performance & ease of use
2
Data structure server
1
Simple
1
Channels concept
1
Scalable
1
Temporarily kept on disk
1
Dont save data if no subscribers are found
1
Automatic failover
1
Easy to use
1
Existing Laravel Integration
1
Object [key/value] size each 500 MB
Decisions about Redis

Here are some stack decisions, common use cases and reviews by companies and developers who chose Redis in their tech stack.

Mary Olowu
Technical operations Engineer | 6 upvotes 路 8.1K views
Shared insights
on
RabbitMQRabbitMQRedisRedis

I am developing a microservice architecture that necessitates service-to-service communication. Validating authorization using a token that is passed from the auth service to the other services is one of these needs. I'm thinking about using the RPC communication strategy with Redis or RabbitMQ. Any suggestions?

See more
Shared insights
on
RedisRedis

My UI brings data from multiple microservices. What is the best way to handle such a use case? Data is not changed frequently over the period. I can think of the following options

  1. Use aggregation layer in API gateway
  2. Create materialize view
  3. Have caching layer in place using Redis
See more
Suman Adhikari
Full Stack (Founder) at Peuconomia Int'l Pvt. Ltd. | 10 upvotes 路 25.8K views

We use Go for the first-off due to our knowledge of it. Second off, it's highly performant and optimized for scalability. We run it using dockerized containers for our backend REST APIs.

For Frontend, we use React with Next.js at vercel. We use NextJS here mostly due to our need for Server Side Rendering and easier route management.

For Database, we use MySQL as it is first-off free and always has been in use with us. We use Google Cloud SQL from GCP that manages its storage and versions along with HA.

All stacks are free to use and get the best juice out of the system. We also use Redis for caching for enterprise-grade apps where data retrieval latency matters the most.

See more
Shared insights
on
RabbitMQRabbitMQRedisRedisKafkaKafka

We are currently moving to a microservice architecture and are debating about the different options there are to handle communication between services. We are currently considering Kafka, Redis or RabbitMQ as a message broker. As RabbitMQ is a little bit older, we thought that it may be outdated. Is that true? Can RabbitMQ hold up to more modern tools like Redis and Kafka?

See more
Abdullah Adeel

Hey everyone, I am planning to start a personal project that would be yet another social media project with real-time communication facilities like one-to-one chat, group chat, and later voice and video chat using WebRTC. The thing I am concerned about is Django being able to handle all the real-time stuff using websockets. I can use Django Channels, but I don't think that would be a very scalable solution. Moreover, django_channels require alto of configurations, and deployment is also a pain. My plan is to use a separate Node.js server to handle all the socket connections and have it talk to the main django server through Redis. My question is whether the above-mentioned solution is a good choice? If yes, how this can be achieved, keeping in mind all the authentication other related problems. It might be simple, but I have never done this before, which might be the main reason I am concerned. But any suggestion will be appreciated.

Thanks in advance 馃槉

See more

For our web application's backend, we have decided to create our server using Node.js and npm as our package manager, as this allows us to utilize a developer's skills and knowledge in JS for both the frontend and backend. ExpressJS provides us an easy to learn framework that saves us effort, time and improves productivity in creating our server, while affording us room to add complexity. Passport will be used to implement Oauth2.0 authentication for our web application, allowing our users to sign in with their existing accounts (no one wants to create a remember the password for yet another account). Mongoose will be used to make calls to our backend, this framework will help make these calls more accessible and organized. We have decided to use Redis on our server for any caching we need. This will greatly speed up retrieval times and reduce calls to external sources for any data that could instead be cached on our server. Lastly, we will use Jest as our unit testing framework for our backend as it is very popular and has support for Node.js . Furthermore, this is the same testing framework we will be using for our frontend, thus allowing use quickly learn and implement testing in both frontend and backend.

We have decided to use Heroku as our hosting platform for our server. Heroku provides clear documentation and a quick and simple process to host Node.js applications with their service, along with great support with our version control Git. Furthermore, Heroku also provides a free tier, which allows us to deploy and test our web application from the beginning of development.

MongoDB is our chosen database as a NoSQL database will give us flexibility in storing different types of data and room for scaling our product. We have decided to use MongoDB Atlas to host our database. As they provide a quick and simple start up along with a free tier to host database. Thus, allowing us to rapidly test our server's uses with the database.

See more

Blog Posts

Nov 20 2019 at 3:38AM

OneSignal

PostgreSQLRedisRuby+8
8
4317
Jun 6 2019 at 5:11PM

AppSignal

RedisRubyKafka+9
15
1286
GitHubDockerReact+17
35
34049

Redis Alternatives & Comparisons

What are some alternatives to Redis?
Memcached
Memcached is an in-memory key-value store for small chunks of arbitrary data (strings, objects) from results of database calls, API calls, or page rendering.
MongoDB
MongoDB stores data in JSON-like documents that can vary in structure, offering a dynamic, flexible schema. MongoDB was also designed for high availability and scalability, with built-in replication and auto-sharding.
RabbitMQ
RabbitMQ gives your applications a common platform to send and receive messages, and your messages a safe place to live until received.
Hazelcast
With its various distributed data structures, distributed caching capabilities, elastic nature, memcache support, integration with Spring and Hibernate and more importantly with so many happy users, Hazelcast is feature-rich, enterprise-ready and developer-friendly in-memory data grid solution.
Cassandra
Partitioning means that Cassandra can distribute your data across multiple machines in an application-transparent matter. Cassandra will automatically repartition as machines are added and removed from the cluster. Row store means that like relational databases, Cassandra organizes data by rows and columns. The Cassandra Query Language (CQL) is a close relative of SQL.
See all alternatives

Redis's Followers
40291 developers follow Redis to keep up with related blogs and decisions.