Understand Redis data types

Overview of data types supported by Redis

Redis is a data structure server. At its core, Redis provides a collection of native data types that help you solve a wide variety of problems, from caching to queuing to event processing. Below is a short description of each data type, with links to broader overviews and command references. Each overview includes a comprehensive tutorial with code samples.

Core data types

Redis Community Edition implements the following data types:

Redis Stack and Redis Enterprise also include some extension modules that implement other useful types, such as JSON. See Extension data types for the full list.

Strings

Redis strings are the most basic Redis data type, representing a sequence of bytes. For more information, see:

Lists

Redis lists are lists of strings sorted by insertion order. For more information, see:

Sets

Redis sets are unordered collections of unique strings that act like the sets from your favorite programming language (for example, Java HashSets, Python sets, and so on). With a Redis set, you can add, remove, and test for existence in O(1) time (in other words, regardless of the number of set elements). For more information, see:

Hashes

Redis hashes are record types modeled as collections of field-value pairs. As such, Redis hashes resemble Python dictionaries, Java HashMaps, and Ruby hashes. For more information, see:

Sorted sets

Redis sorted sets are collections of unique strings that maintain order by each string's associated score. For more information, see:

Streams

A Redis stream is a data structure that acts like an append-only log. Streams help record events in the order they occur and then syndicate them for processing. For more information, see:

Geospatial indexes

Redis geospatial indexes are useful for finding locations within a given geographic radius or bounding box. For more information, see:

Bitmaps

Redis bitmaps let you perform bitwise operations on strings. For more information, see:

Bitfields

Redis bitfields efficiently encode multiple counters in a string value. Bitfields provide atomic get, set, and increment operations and support different overflow policies. For more information, see:

Extension data types

Redis Stack and Redis Enterprise include some extension modules that implement the following data types:

These are not included by default with Redis Community Edition. See Core data types for the list of types that Redis Community Edition supports natively.

JSON

Redis JSON provides structured, hierarchical arrays and key-value objects that match the popular JSON text file format. You can import JSON text into Redis objects and access, modify, and query individual data elements. For more information, see:

Probabilistic data types

These data types let you gather and calculate statistics in a way that is approximate but highly efficient. The following types are available:

HyperLogLog

The Redis HyperLogLog data structures provide probabilistic estimates of the cardinality (i.e., number of elements) of large sets. For more information, see:

Bloom filter

Redis Bloom filters let you check for the presence or absence of an element in a set. For more information, see:

Cuckoo filter

Redis Cuckoo filters let you check for the presence or absence of an element in a set. They are similar to Bloom filters but with slightly different trade-offs between features and performance. For more information, see:

t-digest

Redis t-digest structures estimate percentiles from a stream of data values. For more information, see:

Top-K

Redis Top-K structures estimate the ranking of a data point within a stream of values. For more information, see:

Count-min sketch

Redis Count-min sketch estimate the frequency of a data point within a stream of values. For more information, see:

Time series

Redis time series structures let you store and query timestamped data points. For more information, see:

Adding extensions

To extend the features provided by the included data types, use one of these options:

  1. Write your own custom server-side functions in Lua.
  2. Write your own Redis module using the modules API or check out the community-supported modules.
  3. Use JSON, search, time series, and other capabilities provided by Redis Stack.
RATE THIS PAGE
Back to top ↑