{
  "id": "installation",
  "title": "Install RedisVL",
  "url": "https://redis.io/docs/latest/develop/ai/redisvl/user_guide/installation/",
  "summary": "",
  "tags": [],
  "last_updated": "2026-05-06T11:49:45+02:00",
  "page_type": "content",
  "content_hash": "c67c7a3cdc45b757a91395686e579e61c410453d12323fc1087b08d72b485fb7",
  "sections": [
    {
      "id": "overview",
      "title": "Overview",
      "role": "overview",
      "text": "There are a few ways to install RedisVL. The easiest way is to use pip."
    },
    {
      "id": "install-redisvl-with-pip",
      "title": "Install RedisVL with Pip",
      "role": "setup",
      "text": "Install `redisvl` into your Python (>=3.10) environment using `pip`:\n\n[code example]\n\nRedisVL comes with a few dependencies that are automatically installed, however, several optional\ndependencies can be installed separately based on your needs:\n\n[code example]\n\nIf you use ZSH, remember to escape the brackets:\n\n[code example]\n\nYou can install multiple optional dependencies at once:\n\n[code example]\n\nTo install **all** optional dependencies at once:\n\n[code example]"
    },
    {
      "id": "install-redisvl-from-source",
      "title": "Install RedisVL from Source",
      "role": "setup",
      "text": "To install RedisVL from source, clone the repository and install the package using `pip`:\n\n[code example]"
    },
    {
      "id": "development-installation",
      "title": "Development Installation",
      "role": "content",
      "text": "For contributors who want to develop RedisVL, we recommend using [uv](https://docs.astral.sh/uv/) for dependency management:\n\n[code example]\n\nThis installs the package in editable mode along with all development dependencies (testing, linting, type checking) and documentation dependencies."
    },
    {
      "id": "running-tests-and-linting",
      "title": "Running Tests and Linting",
      "role": "content",
      "text": "[code example]"
    },
    {
      "id": "pre-commit-hooks",
      "title": "Pre-commit Hooks",
      "role": "content",
      "text": "We use pre-commit hooks to ensure code quality. Install them with:\n\n[code example]\n\nRun hooks manually on all files:\n\n[code example]"
    },
    {
      "id": "installing-redis",
      "title": "Installing Redis",
      "role": "setup",
      "text": "RedisVL requires Redis with [Redis Search](https://redis.io/docs/latest/develop/ai/search-and-query/) available. There are several options:\n\n1. [Redis Cloud](https://redis.io/cloud), a fully managed cloud offering with a free tier\n2. [Redis 8+ (Docker)](https://redis.io/downloads/), for local development and testing\n3. [Redis Software](https://redis.com/redis-enterprise/), a commercial self-hosted option"
    },
    {
      "id": "redis-cloud",
      "title": "Redis Cloud",
      "role": "content",
      "text": "Redis Cloud is the easiest way to get started with RedisVL. You can sign up for a free account [here](https://redis.io/cloud). Make sure to have `Redis Search`\nenabled when creating your database."
    },
    {
      "id": "redis-8-local-development",
      "title": "Redis 8+ (local development)",
      "role": "content",
      "text": "For local development and testing, we recommend running Redis 8+ in a Docker container:\n\n[code example]\n\nRedis 8 includes Redis Search and built-in vector search capabilities."
    },
    {
      "id": "redis-software-self-hosted",
      "title": "Redis Software (self-hosted)",
      "role": "content",
      "text": "Redis Software is a commercial offering that can be self-hosted. You can download the latest version [here](https://redis.io/downloads/).\n\nIf you are considering a self-hosted Redis Software deployment on Kubernetes, there is the [Redis Software Operator](https://docs.redis.com/latest/kubernetes/) for Kubernetes. This will allow you to easily deploy and manage a Redis Software cluster on Kubernetes."
    },
    {
      "id": "redis-sentinel",
      "title": "Redis Sentinel",
      "role": "content",
      "text": "For high availability deployments, RedisVL supports connecting to Redis through Sentinel. Use the `redis+sentinel://` URL scheme to connect. Both sync and async connections are fully supported.\n\n[code example]\n\nThe Sentinel URL format supports:\n\n- Multiple sentinel hosts (comma-separated)\n- Optional authentication (username:password)\n- Service name (defaults to `mymaster` if not specified)\n- Optional database number (defaults to 0)\n- Both sync (`SearchIndex`) and async (`AsyncSearchIndex`) connections"
    }
  ],
  "examples": [
    {
      "id": "install-redisvl-with-pip-ex0",
      "language": "bash",
      "code": "$ pip install -U redisvl",
      "section_id": "install-redisvl-with-pip"
    },
    {
      "id": "install-redisvl-with-pip-ex1",
      "language": "bash",
      "code": "# Vectorizer providers\n$ pip install redisvl[openai]              # OpenAI embeddings\n$ pip install redisvl[cohere]              # Cohere embeddings and reranking\n$ pip install redisvl[mistralai]           # Mistral AI embeddings\n$ pip install redisvl[voyageai]            # Voyage AI embeddings and reranking\n$ pip install redisvl[sentence-transformers]  # HuggingFace local embeddings\n$ pip install redisvl[vertexai]            # Google Vertex AI embeddings\n$ pip install redisvl[bedrock]             # AWS Bedrock embeddings\n\n# Other optional features\n$ pip install redisvl[mcp]                 # RedisVL MCP server support (Python 3.10+)\n$ pip install redisvl[langcache]           # LangCache managed service integration\n$ pip install redisvl[sql-redis]           # SQL query support",
      "section_id": "install-redisvl-with-pip"
    },
    {
      "id": "install-redisvl-with-pip-ex2",
      "language": "bash",
      "code": "$ pip install redisvl\\[openai\\]",
      "section_id": "install-redisvl-with-pip"
    },
    {
      "id": "install-redisvl-with-pip-ex3",
      "language": "bash",
      "code": "$ pip install redisvl[mcp,openai,cohere,sentence-transformers]",
      "section_id": "install-redisvl-with-pip"
    },
    {
      "id": "install-redisvl-with-pip-ex4",
      "language": "bash",
      "code": "$ pip install redisvl[all]",
      "section_id": "install-redisvl-with-pip"
    },
    {
      "id": "install-redisvl-from-source-ex0",
      "language": "bash",
      "code": "$ git clone https://github.com/redis/redis-vl-python.git && cd redis-vl-python\n$ pip install .\n\n# or for an editable installation (for developers of RedisVL)\n$ pip install -e .",
      "section_id": "install-redisvl-from-source"
    },
    {
      "id": "development-installation-ex0",
      "language": "bash",
      "code": "# Clone the repository\n$ git clone https://github.com/redis/redis-vl-python.git && cd redis-vl-python\n\n# Install uv if you don't have it\n$ pip install uv\n\n# Install all dependencies (including dev and docs)\n$ uv sync\n\n# Or use make\n$ make install",
      "section_id": "development-installation"
    },
    {
      "id": "running-tests-and-linting-ex0",
      "language": "bash",
      "code": "# Run tests (no external APIs required)\n$ make test\n\n# Run all tests (includes API-dependent tests)\n$ make test-all\n\n# Format code\n$ make format\n\n# Run type checking\n$ make check-types\n\n# Run full check (lint + test)\n$ make check",
      "section_id": "running-tests-and-linting"
    },
    {
      "id": "pre-commit-hooks-ex0",
      "language": "bash",
      "code": "$ pre-commit install",
      "section_id": "pre-commit-hooks"
    },
    {
      "id": "pre-commit-hooks-ex1",
      "language": "bash",
      "code": "$ pre-commit run --all-files",
      "section_id": "pre-commit-hooks"
    },
    {
      "id": "redis-8-local-development-ex0",
      "language": "bash",
      "code": "docker run -d --name redis -p 6379:6379 redis:8.4",
      "section_id": "redis-8-local-development"
    },
    {
      "id": "redis-sentinel-ex0",
      "language": "python",
      "code": "from redisvl.index import SearchIndex, AsyncSearchIndex\n\n# Sync connection via Sentinel\n# Format: redis+sentinel://[username:password@]host1:port1,host2:port2/service_name[/db]\nindex = SearchIndex.from_yaml(\n    \"schema.yaml\",\n    redis_url=\"redis+sentinel://sentinel1:26379,sentinel2:26379/mymaster\"\n)\n\n# Async connection via Sentinel\nasync_index = AsyncSearchIndex.from_yaml(\n    \"schema.yaml\",\n    redis_url=\"redis+sentinel://sentinel1:26379,sentinel2:26379/mymaster\"\n)\n\n# With authentication and database selection\nindex = SearchIndex.from_yaml(\n    \"schema.yaml\",\n    redis_url=\"redis+sentinel://user:pass@sentinel1:26379,sentinel2:26379/mymaster/0\"\n)",
      "section_id": "redis-sentinel"
    }
  ]
}
