Redis

Docs  >   Redis   >  Data-types   >   Redis data types

Top

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.

If you'd like to try a comprehensive tutorial, see the Redis data types tutorial.

Core

Strings

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

  • Overview of Redis strings
  • Redis string command reference

Lists

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

  • Overview of Redis lists
  • Redis list command reference

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 O(1) time (in other words, regardless of the number of set elements). For more information, see:

  • Overview of Redis sets
  • Redis set command reference

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:

  • Overview of Redis hashes
  • Redis hashes command reference

Sorted sets

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

  • Overview of Redis sorted sets
  • Redis sorted set command reference

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:

  • Overview of Redis Streams
  • Redis Streams command reference
  • Redis Streams tutorial

Geospatial indexes

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

  • Overview of Redis geospatial indexes
  • Redis geospatial indexes command reference

Bitmaps

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

  • Overview of Redis bitmaps
  • Redis bitmap command reference

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:

  • Overview of Redis bitfields
  • The BITFIELD command.

HyperLogLog

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

  • Overview of Redis HyperLogLog
  • Redis HyperLogLog command reference

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, querying, time series, and other capabilities provided by Redis Stack.