{
  "id": "data-types",
  "title": "Redis data types",
  "url": "https://redis.io/docs/latest/develop/data-types/",
  "summary": "Overview of data types supported by Redis",
  "tags": [
    "docs",
    "develop",
    "stack",
    "oss",
    "rs",
    "rc",
    "oss",
    "kubernetes",
    "clients"
  ],
  "last_updated": "2026-06-15T09:55:50-04:00",
  "children": [
    {
      "id": "compare-data-types",
      "summary": "Choose the best Redis data type for your task.",
      "title": "Compare data types",
      "url": "https://redis.io/docs/latest/develop/data-types/compare-data-types/"
    },
    {
      "id": "strings",
      "summary": "Introduction to Redis strings",
      "title": "Redis Strings",
      "url": "https://redis.io/docs/latest/develop/data-types/strings/"
    },
    {
      "id": "arrays",
      "summary": "Introduction to Redis arrays",
      "title": "Redis arrays",
      "url": "https://redis.io/docs/latest/develop/data-types/arrays/"
    },
    {
      "id": "geospatial",
      "summary": "Introduction to the Redis Geospatial data type",
      "title": "Redis geospatial",
      "url": "https://redis.io/docs/latest/develop/data-types/geospatial/"
    },
    {
      "id": "hashes",
      "summary": "Introduction to Redis hashes",
      "title": "Redis hashes",
      "url": "https://redis.io/docs/latest/develop/data-types/hashes/"
    },
    {
      "id": "json",
      "summary": "JSON support for Redis",
      "title": "JSON",
      "url": "https://redis.io/docs/latest/develop/data-types/json/"
    },
    {
      "id": "lists",
      "summary": "Introduction to Redis lists",
      "title": "Redis lists",
      "url": "https://redis.io/docs/latest/develop/data-types/lists/"
    },
    {
      "id": "probabilistic",
      "summary": "Probabilistic data structures in Redis",
      "title": "Probabilistic",
      "url": "https://redis.io/docs/latest/develop/data-types/probabilistic/"
    },
    {
      "id": "sets",
      "summary": "Introduction to Redis sets",
      "title": "Redis sets",
      "url": "https://redis.io/docs/latest/develop/data-types/sets/"
    },
    {
      "id": "sorted-sets",
      "summary": "Introduction to Redis sorted sets",
      "title": "Redis sorted sets",
      "url": "https://redis.io/docs/latest/develop/data-types/sorted-sets/"
    },
    {
      "id": "streams",
      "summary": "Introduction to Redis streams",
      "title": "Redis Streams",
      "url": "https://redis.io/docs/latest/develop/data-types/streams/"
    },
    {
      "id": "timeseries",
      "summary": "Ingest and query time series data with Redis",
      "title": "Time series",
      "url": "https://redis.io/docs/latest/develop/data-types/timeseries/"
    },
    {
      "id": "vector-sets",
      "summary": "Introduction to Redis vector sets",
      "title": "Redis vector sets",
      "url": "https://redis.io/docs/latest/develop/data-types/vector-sets/"
    }
  ],
  "page_type": "content",
  "content_hash": "661f9841f40c6b4ec9f5db2c70a4ec99fbc57ebcceaa6fe631713a110409734a",
  "sections": [
    {
      "id": "overview",
      "title": "Overview",
      "role": "overview",
      "text": "Redis is a data structure server.\nAt its core, Redis provides a collection of native data types that help you solve a wide variety of problems, from [caching](https://redis.io/docs/latest/develop/data-types/strings) to\n[queuing](https://redis.io/docs/latest/develop/data-types/lists) to\n[event processing](https://redis.io/docs/latest/develop/data-types/streams).\nBelow is a short description of each data type, with links to broader overviews and command references.\nEach overview includes a comprehensive tutorial with code samples."
    },
    {
      "id": "data-types",
      "title": "Data types",
      "role": "content",
      "text": "[Redis Open Source](https://redis.io/docs/latest/operate/oss_and_stack)\nimplements the following data types:\n\n- [Strings](#strings)\n    - [Bitmaps](#bitmaps)\n    - [Bitfields](#bitfields)\n- [Arrays](#arrays)\n- [Geospatial indexes](#geospatial-indexes)\n- [Hashes](#hashes)\n- [JSON](#json)\n- [Lists](#lists)\n- [Probabilistic data types](#probabilistic-data-types)\n- [Sets](#sets)\n- [Sorted sets](#sorted-sets)\n- [Streams](#streams)\n- [Time series](#time-series)\n- [Vector sets](#vector-sets)\n\nSee [Compare data types](https://redis.io/docs/latest/develop/data-types/compare-data-types)\nfor advice on which of the general-purpose data types is best for common tasks."
    },
    {
      "id": "strings",
      "title": "Strings",
      "role": "content",
      "text": "[Redis strings](https://redis.io/docs/latest/develop/data-types/strings) are the most basic Redis data type, representing a sequence of bytes.\nFor more information, see:\n\n* [Overview of Redis strings](https://redis.io/docs/latest/develop/data-types/strings)\n* [Redis string command reference](https://redis.io/docs/latest/commands/?group=string)"
    },
    {
      "id": "bitfields",
      "title": "Bitfields",
      "role": "content",
      "text": "[Redis bitfields](https://redis.io/docs/latest/develop/data-types/strings/bitfields) efficiently encode multiple counters in a string value.\nBitfields provide atomic get, set, and increment operations and support different overflow policies.\nFor more information, see:\n\n* [Overview of Redis bitfields](https://redis.io/docs/latest/develop/data-types/strings/bitfields)\n* The [`BITFIELD`](https://redis.io/docs/latest/commands/bitfield) command."
    },
    {
      "id": "bitmaps",
      "title": "Bitmaps",
      "role": "content",
      "text": "[Redis bitmaps](https://redis.io/docs/latest/develop/data-types/strings/bitmaps) let you perform bitwise operations on strings. \nFor more information, see:\n\n* [Overview of Redis bitmaps](https://redis.io/docs/latest/develop/data-types/strings/bitmaps)\n* [Redis bitmap command reference](https://redis.io/docs/latest/commands/?group=bitmap)"
    },
    {
      "id": "arrays",
      "title": "Arrays",
      "role": "content",
      "text": "[Redis arrays](https://redis.io/docs/latest/develop/data-types/arrays) are sparse, index-addressable sequences of strings.\nFor more information, see:\n\n* [Overview of Redis arrays](https://redis.io/docs/latest/develop/data-types/arrays)\n* [Redis array command reference](https://redis.io/docs/latest/commands/?group=array)"
    },
    {
      "id": "geospatial-indexes",
      "title": "Geospatial indexes",
      "role": "content",
      "text": "[Redis geospatial indexes](https://redis.io/docs/latest/develop/data-types/geospatial) are useful for finding locations within a given geographic radius or bounding box.\nFor more information, see:\n\n* [Overview of Redis geospatial indexes](https://redis.io/docs/latest/develop/data-types/geospatial)\n* [Redis geospatial indexes command reference](https://redis.io/docs/latest/commands/?group=geo)"
    },
    {
      "id": "hashes",
      "title": "Hashes",
      "role": "content",
      "text": "[Redis hashes](https://redis.io/docs/latest/develop/data-types/hashes) are record types modeled as collections of field-value pairs.\nAs such, Redis hashes resemble [Python dictionaries](https://docs.python.org/3/tutorial/datastructures.html#dictionaries), [Java HashMaps](https://docs.oracle.com/javase/8/docs/api/java/util/HashMap.html), and [Ruby hashes](https://ruby-doc.org/core-3.1.2/Hash.html).\nFor more information, see:\n\n* [Overview of Redis hashes](https://redis.io/docs/latest/develop/data-types/hashes)\n* [Redis hashes command reference](https://redis.io/docs/latest/commands/?group=hash)"
    },
    {
      "id": "json",
      "title": "JSON",
      "role": "content",
      "text": "[Redis JSON](https://redis.io/docs/latest/develop/data-types/json) provides\nstructured, hierarchical arrays and key-value objects that match\nthe popular [JSON](https://www.json.org/json-en.html) text file\nformat. You can import JSON text into Redis objects and access,\nmodify, and query individual data elements.\nFor more information, see:\n\n- [Overview of Redis JSON](https://redis.io/docs/latest/develop/data-types/json)\n- [JSON command reference](https://redis.io/docs/latest/commands?group=json)"
    },
    {
      "id": "lists",
      "title": "Lists",
      "role": "content",
      "text": "[Redis lists](https://redis.io/docs/latest/develop/data-types/lists) are lists of strings sorted by insertion order.\nFor more information, see:\n\n* [Overview of Redis lists](https://redis.io/docs/latest/develop/data-types/lists)\n* [Redis list command reference](https://redis.io/docs/latest/commands/?group=list)"
    },
    {
      "id": "probabilistic-data-types",
      "title": "Probabilistic data types",
      "role": "content",
      "text": "These data types let you gather and calculate statistics in a way\nthat is approximate but highly efficient. The following types are\navailable:\n\n- [Bloom filter](#bloom-filter)\n- [Count-min sketch](#count-min-sketch)\n- [Cuckoo filter](#cuckoo-filter)\n- [HyperLogLog](#hyperloglog)\n- [t-digest](#t-digest)\n- [Top-K](#top-k)"
    },
    {
      "id": "bloom-filter",
      "title": "Bloom filter",
      "role": "content",
      "text": "[Redis Bloom filters](https://redis.io/docs/latest/develop/data-types/probabilistic/bloom-filter)\nlet you check for the presence or absence of an element in a set. For more\ninformation, see:\n\n- [Overview of Redis Bloom filters](https://redis.io/docs/latest/develop/data-types/probabilistic/bloom-filter)\n- [Bloom filter command reference](https://redis.io/docs/latest/commands?group=bf)"
    },
    {
      "id": "count-min-sketch",
      "title": "Count-min sketch",
      "role": "content",
      "text": "[Redis Count-min sketch](https://redis.io/docs/latest/develop/data-types/probabilistic/count-min-sketch)\nestimate the frequency of a data point within a stream of values.\nFor more information, see:\n\n- [Redis Count-min sketch overview](https://redis.io/docs/latest/develop/data-types/probabilistic/count-min-sketch)\n- [Count-min sketch command reference](https://redis.io/docs/latest/commands?group=cms)"
    },
    {
      "id": "cuckoo-filter",
      "title": "Cuckoo filter",
      "role": "content",
      "text": "[Redis Cuckoo filters](https://redis.io/docs/latest/develop/data-types/probabilistic/cuckoo-filter)\nlet you check for the presence or absence of an element in a set. They are similar to\n[Bloom filters](#bloom-filter) but with slightly different trade-offs between features\nand performance. For more information, see:\n\n- [Overview of Redis Cuckoo filters](https://redis.io/docs/latest/develop/data-types/probabilistic/cuckoo-filter)\n- [Cuckoo filter command reference](https://redis.io/docs/latest/commands?group=cf)"
    },
    {
      "id": "hyperloglog",
      "title": "HyperLogLog",
      "role": "content",
      "text": "The [Redis HyperLogLog](https://redis.io/docs/latest/develop/data-types/probabilistic/hyperloglogs) data structures provide probabilistic estimates of the cardinality (i.e., number of elements) of large sets. For more information, see:\n\n* [Overview of Redis HyperLogLog](https://redis.io/docs/latest/develop/data-types/probabilistic/hyperloglogs)\n* [Redis HyperLogLog command reference](https://redis.io/docs/latest/commands/?group=hyperloglog)"
    },
    {
      "id": "t-digest",
      "title": "t-digest",
      "role": "content",
      "text": "[Redis t-digest](https://redis.io/docs/latest/develop/data-types/probabilistic/t-digest)\nstructures estimate percentiles from a stream of data values. For more\ninformation, see:\n\n- [Redis t-digest overview](https://redis.io/docs/latest/develop/data-types/probabilistic/t-digest)\n- [t-digest command reference](https://redis.io/docs/latest/commands?group=tdigest)"
    },
    {
      "id": "top-k",
      "title": "Top-K",
      "role": "content",
      "text": "[Redis Top-K](https://redis.io/docs/latest/develop/data-types/probabilistic/top-k)\nstructures estimate the ranking of a data point within a stream of values.\nFor more information, see:\n\n- [Redis Top-K overview](https://redis.io/docs/latest/develop/data-types/probabilistic/top-k)\n- [Top-K command reference](https://redis.io/docs/latest/commands?group=topk)"
    },
    {
      "id": "sets",
      "title": "Sets",
      "role": "content",
      "text": "[Redis sets](https://redis.io/docs/latest/develop/data-types/sets) are unordered collections of unique strings that act like the sets from your favorite programming language (for example, [Java HashSets](https://docs.oracle.com/javase/7/docs/api/java/util/HashSet.html), [Python sets](https://docs.python.org/3.10/library/stdtypes.html#set-types-set-frozenset), and so on).\nWith 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).\nFor more information, see:\n\n* [Overview of Redis sets](https://redis.io/docs/latest/develop/data-types/sets)\n* [Redis set command reference](https://redis.io/docs/latest/commands/?group=set)"
    },
    {
      "id": "sorted-sets",
      "title": "Sorted sets",
      "role": "content",
      "text": "[Redis sorted sets](https://redis.io/docs/latest/develop/data-types/sorted-sets) are collections of unique strings that maintain order by each string's associated score.\nFor more information, see:\n\n* [Overview of Redis sorted sets](https://redis.io/docs/latest/develop/data-types/sorted-sets)\n* [Redis sorted set command reference](https://redis.io/docs/latest/commands/?group=sorted-set)"
    },
    {
      "id": "streams",
      "title": "Streams",
      "role": "content",
      "text": "A [Redis stream](https://redis.io/docs/latest/develop/data-types/streams) is a data structure that acts like an append-only log.\nStreams help record events in the order they occur and then syndicate them for processing.\nFor more information, see:\n\n* [Overview of Redis Streams](https://redis.io/docs/latest/develop/data-types/streams)\n* [Redis Streams command reference](https://redis.io/docs/latest/commands/?group=stream)"
    },
    {
      "id": "time-series",
      "title": "Time series",
      "role": "content",
      "text": "[Redis time series](https://redis.io/docs/latest/develop/data-types/timeseries)\nstructures let you store and query timestamped data points.\nFor more information, see:\n\n- [Redis time series overview](https://redis.io/docs/latest/develop/data-types/timeseries)\n- [Time series command reference](https://redis.io/docs/latest/commands?group=timeseries)"
    },
    {
      "id": "vector-sets",
      "title": "Vector sets",
      "role": "content",
      "text": "[Redis vector sets](https://redis.io/docs/latest/develop/data-types/vector-sets) are a specialized data type designed for managing high-dimensional vector data, enabling fast and efficient vector similarity search within Redis. Vector sets are optimized for use cases involving machine learning, recommendation systems, and semantic search, where each vector represents a data point in multi-dimensional space. Vector sets supports the [HNSW](https://en.wikipedia.org/wiki/Hierarchical_navigable_small_world) (hierarchical navigable small world) algorithm, allowing you to store, index, and query vectors based on the cosine similarity metric. With vector sets, Redis provides native support for hybrid search, combining vector similarity with structured [filters](https://redis.io/docs/latest/develop/data-types/vector-sets/filtered-search).\nFor more information, see:\n\n* [Overview of Redis vector sets](https://redis.io/docs/latest/develop/data-types/vector-sets)\n* [Redis vector set command reference](https://redis.io/docs/latest/commands/?group=vector_set)"
    },
    {
      "id": "adding-extensions",
      "title": "Adding extensions",
      "role": "content",
      "text": "To extend the features provided by the included data types, use one of these options:\n\n1. Write your own custom [server-side functions in Lua](https://redis.io/docs/latest/develop/programmability/).\n1. Write your own Redis module using the [modules API](https://redis.io/docs/latest/develop/reference/modules/) or check out the [community-supported modules](https://redis.io/docs/latest/operate/oss_and_stack/stack-with-enterprise/)."
    }
  ],
  "examples": []
}
