What is Redis?

What is Redis?

Redis (REmote DIctionary Server) is an open source, in-memory, NoSQL key/value store that is used primarily as an application cache or quick-response database.

Redis stores data in memory, rather than on a disk or solid-state drive (SSD), which helps deliver unparalleled speed, reliability, and performance.

When an application relies on external data sources, the latency and throughput of those sources can create a performance bottleneck, especially as traffic increases or the application scales. One way to improve performance in these cases is to store and manipulate data in-memory, physically closer to the application. Redis is built to this task: It stores all data in-memory—delivering the fastest possible performance when reading or writing data—and offers built-in replication capabilities that let you place data physically closer to the user for the lowest latency.

Other Redis characteristics worth noting include support for multiple data structures, built-in Lua scripting, multiple levels of on-disk persistence, and high availability.

3D design of balls rolling on a track

The latest AI News + Insights 


Discover expertly curated insights and news on AI, cloud and more in the weekly Think Newsletter. 

Differentiating capabilities

Redis stands apart from ‘traditional’ NoSQL data stores as an auxiliary component designed specifically to improve application performance. Here are a few differentiating capabilities of Redis:

Redis cache sessions

Again, unlike NoSQL databases such as MongoDB and PostreSQL, Redis stores data in the server's main memory rather than on hard disks and solid-state drives. This leads to significantly faster response times when performing read and write operations. It also helps ensure high availability (together with Redis Sentinel) and scalability of services and application workloads.

Redis queues

Redis can queue tasks that may take web clients longer to process than usual. Multiprocess task queuing is commonplace in many of today's web-based applications, and Redis makes it easy to implement automated Python-written processes that run in the background of request/response cycles.

Redis data types

While technically a key/value store, Redis is an actual data structure server that supports multiple data types and structures, including:

  • Unique and unsorted string elements

  • Binary-safe data

  • HyperLogLogs

  • Bit arrays

  • Hashes

  • Lists

Redis client handling

Redis features native client integration capabilities to help developers manipulate and interact with their data. There are currently well over 100 different open source clients available in the Redis client library, and developers can easily add new integrations to support additional features and programming languages.

Mixture of Experts | 27 February, episode 44

Decoding AI: Weekly News Roundup

Join our world-class panel of engineers, researchers, product leaders and more as they cut through the AI noise to bring you the latest in AI news and insights.

Features

Some of the most important or noteworthy features of Redis include:

Redis Sentinel

Redis Sentinel is a stand-alone distributed system that helps developers calibrate their instances to be highly available for clients. Sentinel uses a series of monitoring processes, notifications, and automatic failovers to inform users when there is something wrong with master and slave instances, while automatically reconfiguring new connections for applications when necessary.

Redis Cluster

Redis Cluster is a distributed implementation of Redis that automatically splits datasets among multiple nodes. This supports higher performance and scalability of database deployments, while ensuring continuous operations in the event that node subsets are unable to communicate with the rest of the cluster.

Redis Pub/Sub

Because Redis supports the use of publish and subscribe (Pub/Sub) commands, users can design high-performance chat and messaging services across all their applications and services. This includes the ability to use list data structures to run atomic operations and blocking capabilities.

Redis persistence

Redis uses persistent disk storage designed to survive process outages and network bottlenecks. Redis can persist datasets by taking regular snapshots of data and appending them with changes as they become available. Redis can then be configured to generate these database backups on demand or at automatic intervals to ensure database durability and integrity.

Redis vs. Memcached

Both Redis and Memcached are open source, in-memory data stores, but they differ when it comes to their benefits and features. Memcached is often the preferred choice for simple applications requiring fewer memory resources, but it is limited when storing data in its serialized form. Redis' use of data structures provides much more power when working with large datasets and more ability to fine-tune cache contents and maintain greater efficiency in specific application scenarios.

Redis vs. MongoDB

While Redis is an in-memory database store, MongoDB is known as an on-disk document store. Although both solutions are built for different purposes, they are often used together to maximize the speed and efficiency of a NoSQL database. Because of its caching ability, Redis can locate required data extremely quickly, serving as an ingestion buffer that makes MongoDB more efficient and able to manage larger frequencies of document updates in near real-time. With MongoDB’s ability to store significant amounts of data and Redis’ ability to process it faster, the pairing offers a powerful database management solution for a variety of use cases.

Use cases

Here are some common use cases that enterprises benefit from when working with Redis:

  • Real-time analytics: Because Redis can process data with sub-millisecond latency, it is ideal for real-time analytics, online advertising campaigns, and AI-driven machine learning processes.

  • Location-based applications: Redis simplifies the development of location-based applications and services by providing geospatial indexing, sets, and operations. Using sorted sets, Redis is able to offload time-consuming searching and sorting of location data while also using an intelligent geo-hashing implementation.

  • Caching for databases: Redis is able to handle large amounts of real-time data, making use of its in-memory data storage capabilities to help support highly responsive database constructs. Caching with Redis allows for fewer database accesses, which helps to reduce the amount of traffic and instances required. By using Redis for caching, development teams can dramatically improve their application throughputs by achieving sub-millisecond latency. And since Redis’ caching layer can scale quickly and economically, organizations are able to develop these highly responsive applications while reducing their overall expenditures.

Installing Redis

Getting started with Redis is a fairly seamless process, especially with the use of the Redis Desktop Manager (RDM). And since Redis and RDM are open source, active development communities are always working to improve their efficiency of operation and continuously evolve supported tools and integrations.

For more information on installing and setting up Redis, follow the setup instructions in the community.

Related solutions
Database software and solutions

Use IBM database solutions to meet various workload needs across the hybrid cloud.

Explore database solutions
Cloud-native database with IBM Db2

Explore IBM Db2, a relational database that provides high performance, scalability and reliability for storing and managing structured data. It is available as SaaS on IBM Cloud or for self-hosting.

Discover Db2
IBM® watsonx.data™

Watsonx.data enables you to scale analytics and AI with all your data, wherever it resides, through an open, hybrid and governed data store.

Discover watsonx.data
Take the next step

Use IBM database solutions to meet various workload needs across the hybrid cloud.

Explore database solutions Discover data and analytics services