Redis logo

Redis

Open source (BSD licensed), in-memory data structure store

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’s a link to Redis 's open source repository on GitHub

Who uses Redis?

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

Developers
44791 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
191
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.

Shared insights

Light weight queueing and smart caching for our data collection processes. Redis

See more
Joshua Dean Küpper
CEO at Scrayos UG (haftungsbeschränkt) · | 1 upvote · 123.7K views

We make extensive use of Redis for our caches and use it as a way to save "semi-permanent" stuff like user-submit settings (that get refreshed on each login) or cooldowns that expire very fast. Additionally we also utilize the Pub-Sub capabilities that Redis has to offer.

We decided against using a dedicated Message-Broker/Streaming Platform like RabbitMQ or Kafka , as we already had a packet-based, custom protocol for communication between servers and services, and we only needed some "tiny" Pub-Sub magic to fill in the gaps. An entire additional service just for this oddjob would've been a total overkill.

See more
Emanuel Evans
Senior Architect at Rainforest QA · | 20 upvotes · 1.2M views

We recently moved our main applications from Heroku to Kubernetes . The 3 main driving factors behind the switch were scalability (database size limits), security (the inability to set up PostgreSQL instances in private networks), and costs (GCP is cheaper for raw computing resources).

We prefer using managed services, so we are using Google Kubernetes Engine with Google Cloud SQL for PostgreSQL for our PostgreSQL databases and Google Cloud Memorystore for Redis . For our CI/CD pipeline, we are using CircleCI and Google Cloud Build to deploy applications managed with Helm . The new infrastructure is managed with Terraform .

Read the blog post to go more in depth.

See more
Pedro Arnal Puente
CTO at La Cupula Music SL · | 8 upvotes · 551.3K views
Shared insights
at

Our base infrastructure is composed of Debian based servers running in Amazon EC2 , asset storage with Amazon S3 , and Amazon RDS for Aurora and Redis under Amazon ElastiCache for data storage.

We are starting to work in automated provisioning and management with Terraform .

See more
Shared insights
at

I'm working as one of the engineering leads in RunaHR. As our platform is a Saas, we thought It'd be good to have an API (We chose Ruby and Rails for this) and a SPA (built with React and Redux ) connected. We started the SPA with Create React App since It's pretty easy to start.

We use Jest as the testing framework and react-testing-library to test React components. In Rails we make tests using RSpec .

Our main database is PostgreSQL , but we also use MongoDB to store some type of data. We started to use Redis for cache and other time sensitive operations.

We have a couple of extra projects: One is an Employee app built with React Native and the other is an internal back office dashboard built with Next.js for the client and Python in the backend side.

Since we have different frontend apps we have found useful to have Bit to document visual components and utils in JavaScript .

See more
Joshua Dean Küpper
CEO at Scrayos UG (haftungsbeschränkt) · | 6 upvotes · 142.6K views

We use GraphQL for the communication between our Minecraft-Proxies/Load-Balancers and our global Minecraft-Orchestration-Service JCOverseer .

This connection proved to be especially challenging, as there were so many available options and very specific requirements and we tried our hardest to put as little complexity into this interface as possible.

Initially we considered designing our very own Netty based Packet-Protocol. While the performance of this approach probably would've been noteworthy, we would have had to write a lot of packets as the individual payloads would differ a lot and for the protocol specification a new project would've been needed, so we scrapped that idea.

Our second idea was to use a combination of Redis Key/Value store (in particular the ability to write whole, complex sets as the values of keys) for existing data, Redis Pub-Sub for the synchronization of new/changed/deleted data and a Vert.x based REST API for the mutation requests of the clients. While this would certainly have been possible, we decided against it, as redis offers no real other data types than strings and typing was important to us.

So we finally settled for GraphQL as it would allow us to define dynamic queries and mutations and additionally has subscriptions in store, so we would only need one component instead of three separate. The proxies register as subscribers to the server changes channel and fetch the current data set in advance. If they need to request changes, this is done through a mutation in GraphQL aswell.

The status of the invidiual servers is fetched through Docker healthchecks and a Docker client in the orchestration service, that subscribes to changed HEALTHINESS values in docker. If a service becomes unhealthy it is unregistered and synchronized through GraphQL . The healthcheck is comparable to a ping packet that expects a response in a given time frame.

See more

Blog Posts

Nov 20 2019 at 3:38AM

OneSignal

PostgreSQL Redis Ruby + 8
8
4334
Jun 6 2019 at 5:11PM

AppSignal

Redis Ruby Kafka + 9
15
1300
GitHub Docker React + 17
35
34275

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
40940 developers follow Redis to keep up with related blogs and decisions.