Redis logo

Redis

Open source (BSD licensed), in-memory data structure store
55.7K
43.2K
+ 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
6680 companies reportedly use Redis in their tech stacks, including Uber, Airbnb, and Pinterest.

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

Redis Integrations

Datadog, Spring Data, Presto, Clever Cloud, and Netdata are some of the popular tools that integrate with Redis. Here's a list of all 112 tools that integrate with Redis.
Pros of Redis
884
Performance
541
Super fast
512
Ease of use
443
In-memory cache
323
Advanced key-value cache
193
Open source
182
Easy to deploy
164
Stable
155
Free
121
Fast
42
High-Performance
40
High Availability
34
Data Structures
32
Very Scalable
24
Replication
22
Pub/Sub
22
Great community
19
"NoSQL" key-value data store
15
Hashes
13
Sets
11
Sorted Sets
10
Lists
9
BSD licensed
9
NoSQL
8
Integrates super easy with Sidekiq for Rails background
8
Async replication
8
Bitmaps
7
Open Source
7
Keys with a limited time-to-live
6
Lua scripting
6
Strings
5
Awesomeness for Free
5
Hyperloglogs
4
Written in ANSI C
4
LRU eviction of keys
4
Networked
4
Outstanding performance
4
Runs server side LUA
4
Transactions
4
Feature Rich
3
Performance & ease of use
3
Data structure server
2
Object [key/value] size each 500 MB
2
Simple
2
Scalable
2
Temporarily kept on disk
2
Dont save data if no subscribers are found
2
Automatic failover
2
Easy to use
2
Existing Laravel Integration
2
Channels concept
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 路 159.6K 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
Simon Bettison
Managing Director at Bettison.org Limited | 7 upvotes 路 646K views
Shared insights
at

In 2012 we made the very difficult decision to entirely re-engineer our existing monolithic LAMP application from the ground up in order to address some growing concerns about it's long term viability as a platform.

Full application re-write is almost always never the answer, because of the risks involved. However the situation warranted drastic action as it was clear that the existing product was going to face severe scaling issues. We felt it better address these sooner rather than later and also take the opportunity to improve the international architecture and also to refactor the database in. order that it better matched the changes in core functionality.

PostgreSQL was chosen for its reputation as being solid ACID compliant database backend, it was available as an offering AWS RDS service which reduced the management overhead of us having to configure it ourselves. In order to reduce read load on the primary database we implemented an Elasticsearch layer for fast and scalable search operations. Synchronisation of these indexes was to be achieved through the use of Sidekiq's Redis based background workers on Amazon ElastiCache. Again the AWS solution here looked to be an easy way to keep our involvement in managing this part of the platform at a minimum. Allowing us to focus on our core business.

Rails ls was chosen for its ability to quickly get core functionality up and running, its MVC architecture and also its focus on Test Driven Development using RSpec and Selenium with Travis CI providing continual integration. We also liked Ruby for its terse, clean and elegant syntax. Though YMMV on that one!

Unicorn was chosen for its continual deployment and reputation as a reliable application server, nginx for its reputation as a fast and stable reverse-proxy. We also took advantage of the Amazon CloudFront CDN here to further improve performance by caching static assets globally.

We tried to strike a balance between having control over management and configuration of our core application with the convenience of being able to leverage AWS hosted services for ancillary functions (Amazon SES , Amazon SQS Amazon Route 53 all hosted securely inside Amazon VPC of course!).

Whilst there is some compromise here with potential vendor lock in, the tasks being performed by these ancillary services are no particularly specialised which should mitigate this risk. Furthermore we have already containerised the stack in our development using Docker environment, and looking to how best to bring this into production - potentially using Amazon EC2 Container Service

See more
Emanuel Evans
Senior Architect at Rainforest QA | 20 upvotes 路 1.3M 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 路 604.7K 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

Blog Posts

Nov 20 2019 at 3:38AM

OneSignal

PostgreSQLRedisRuby+8
9
4539
Jun 6 2019 at 5:11PM

AppSignal

RedisRubyKafka+9
16
1588
GitHubDockerReact+17
38
35352

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