Redis logo

Redis

An in-memory database that persists on disk
42.1K
31.3K
+ 1
3.9K

What is Redis?

Redis is an open source, BSD licensed, advanced key-value store. It is often referred to as a data structure server since keys can contain strings, hashes, lists, sets and sorted sets.
Redis is a tool in the In-Memory Databases category of a tech stack.
Redis is an open source tool with 51.4K GitHub stars and 20.2K GitHub forks. Here’s a link to Redis's open source repository on GitHub

Who uses Redis?

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

Developers
34873 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 89 tools that integrate with Redis.
Pros of Redis
875
Performance
535
Super fast
511
Ease of use
441
In-memory cache
321
Advanced key-value cache
190
Open source
179
Easy to deploy
163
Stable
153
Free
120
Fast
40
High-Performance
39
High Availability
34
Data Structures
32
Very Scalable
23
Replication
20
Great community
19
Pub/Sub
17
"NoSQL" key-value data store
14
Hashes
12
Sets
10
Sorted Sets
9
Lists
8
BSD licensed
8
NoSQL
7
Async replication
7
Integrates super easy with Sidekiq for Rails background
7
Bitmaps
6
Open Source
6
Keys with a limited time-to-live
5
Strings
5
Lua scripting
4
Awesomeness for Free!
4
Hyperloglogs
3
outstanding performance
3
Runs server side LUA
3
Networked
3
LRU eviction of keys
3
Written in ANSI C
3
Feature Rich
3
Transactions
2
Data structure server
2
Performance & ease of use
1
Existing Laravel Integration
1
Automatic failover
1
Easy to use
1
Object [key/value] size each 500 MB
1
Simple
1
Channels concept
1
Scalable
1
Temporarily kept on disk
1
Dont save data if no subscribers are found
0
Jk
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
on
Redis

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 · 54.4K 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 · | 15 upvotes · 672.1K 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 · 462.7K views

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

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) · | 5 upvotes · 64.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

+8
8
3894
Jun 6 2019 at 5:11PM

AppSignal

+9
15
1141
+17
33
29877

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