Redis is widely known as an in-memory cache and data structure store, but its module ecosystem extends far beyond simple key-value operations. Three Redis modules — RediSearch, RedisInsight, and RedisTimeSeries — transform Redis into a full-featured search engine, analytics dashboard, and time-series database. This guide explores how to self-host and leverage these powerful Redis extensions for search, observability, and time-series workloads.

Why Self-Host Redis Search and Analytics Modules

The Redis module ecosystem turns a single database into a multi-purpose platform. Instead of deploying Elasticsearch for full-text search, InfluxDB for time-series data, and a separate monitoring tool for Redis observability, you can extend your existing Redis deployment with specialized modules.

Self-hosting these modules gives you the performance benefits of in-memory processing while keeping all data within your infrastructure boundary. This is particularly valuable for organizations with data residency requirements, compliance mandates, or simply a preference for minimizing the number of database systems in their stack.

For Redis high availability patterns, see our Redis HA guide. For database connection pooling strategies, check our connection pooling guide. And for key-value store alternatives beyond Redis, our key-value stores guide covers FoundationDB, BadgerDB, and BoltDB.

Comparison Overview

FeatureRediSearchRedisInsightRedisTimeSeries
GitHub Stars6,136+8,456+1,068+
Primary PurposeFull-text search, vector searchGUI management, monitoringTime-series data
InterfaceModule (programmatic)Desktop/Web GUIModule (programmatic)
Full-Text SearchYes (stemming, fuzzy)NoNo
Vector SimilarityYes (HNSW, FLAT)NoNo
AggregationsYes (pipeline)NoYes (range aggregations)
Time-Series NativeNoViewerYes
Data RetentionN/AN/AAutomatic (configurable)
DownsamplingNoNoYes (rules-based)
Query LanguageFT.SEARCH, FT.AGGREGATESQL-like browserTS.MRANGE, TS.GET
Grafana IntegrationVia pluginNative datasourceNative datasource
DeploymentRedis module loadSeparate binaryRedis module load
Best ForSearch, semantic searchAdministration, monitoringMetrics, IoT, telemetry

RediSearch — Full-Text and Vector Search on Redis

RediSearch is a powerful search and indexing engine built as a Redis module. It adds full-text search, secondary indexing, vector similarity search, and aggregation capabilities to Redis — effectively turning Redis into a lightweight Elasticsearch replacement for many use cases.

Key Features

  • Full-text search: Stemming, fuzzy matching, phonetic matching, exact phrases
  • Vector similarity search: HNSW and FLAT index types for embedding-based search
  • Secondary indexes: Index any Redis data type (hashes, JSON documents)
  • Aggregation pipelines: Group, filter, sort, and reduce search results
  • Geo-search: Radius and box-based geographic queries
  • Numeric range queries: Filter by numeric fields with range conditions
  • Tag indexes: Exact-match multi-value field filtering
  • Auto-complete: Prefix-based auto-complete suggestions

Docker Compose Deployment

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
version: "3.8"
services:
  redis-search:
    image: redis/redis-stack-server:latest
    ports:
      - "6379:6379"
    volumes:
      - redis-search-data:/data
    command: >
      redis-server
      --loadmodule /opt/redis-stack/lib/redisearch.so
      MAXSEARCHRESULTS 10000
      MAXAGGREGATERESULTS 10000
    restart: unless-stopped

volumes:
  redis-search-data:

Installation

1
2
3
4
5
# Redis Stack includes RediSearch by default
docker run -d -p 6379:6379 redis/redis-stack-server:latest

# Or load the module on an existing Redis instance
redis-server --loadmodule /path/to/redisearch.so

Indexing and Searching Example

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
# Create a search index
redis-cli FT.CREATE idx:products ON HASH PREFIX 1 product: SCHEMA   title TEXT WEIGHT 2.0   description TEXT   price NUMERIC SORTABLE   category TAG   location GEO

# Search for products
redis-cli FT.SEARCH idx:products "@title:(wireless headphones) @price:[50 200]"   SORTBY price ASC LIMIT 0 10

# Vector similarity search (for embeddings)
redis-cli FT.CREATE idx:embeddings ON HASH PREFIX 1 vec: SCHEMA   embedding VECTOR HNSW 6 TYPE FLOAT32 DIM 768 DISTANCE_METRIC COSINE

# Search by vector similarity
redis-cli FT.SEARCH idx:embeddings "@embedding:[VECTOR_RANGE 0.3 $query_vec]"   PARAMS 2 query_vec "$(cat embedding.bin)" LIMIT 0 5

RedisInsight — GUI for Redis Management and Monitoring

RedisInsight is the official Redis GUI from Redis, Inc. It provides a comprehensive visual interface for managing Redis databases, running queries, monitoring performance, and working with all Redis modules including RediSearch and RedisTimeSeries.

Key Features

  • Multi-database management: Connect to multiple Redis instances and clusters
  • Query builder: Visual query builder for RediSearch, JSON, and Time Series
  • Workbench: SQL-like interface for running Redis commands with history
  • Browser: Tree-view navigation of keys, with value editing
  • Profiling: Real-time command profiling and slow log analysis
  • Memory analysis: Visual breakdown of memory usage by key pattern
  • Cluster support: Visual topology for Redis Cluster deployments
  • Stream viewer: Real-time Redis Stream monitoring
  • Pub/Sub viewer: Live message monitoring

Docker Compose Deployment

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
version: "3.8"
services:
  redisinsight:
    image: redis/redisinsight:latest
    ports:
      - "5540:5540"
    volumes:
      - redisinsight-data:/data
    environment:
      - REDISINSIGHT_HOST=0.0.0.0
      - REDISINSIGHT_PORT=5540
    restart: unless-stopped

volumes:
  redisinsight-data:

Installation

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
# Via Docker
docker run -d -v redisinsight:/data -p 5540:5540 redis/redisinsight:latest

# Via package manager (Linux)
sudo apt install redisinsight
redisinsight

# Via direct download
wget https://download.redis.io/redisinsight/redisinsight-linux-x86_64.AppImage
chmod +x redisinsight-linux-x86_64.AppImage
./redisinsight-linux-x86_64.AppImage

RedisTimeSeries — Time-Series Data at In-Memory Speed

RedisTimeSeries is a time-series database module for Redis. It provides native time-series data structures with automatic downsampling, retention policies, and aggregation functions — all at in-memory speed.

Key Features

  • Native time-series data type: Optimized storage for timestamped values
  • Automatic downsampling: Create compaction rules for aggregated views
  • Configurable retention: Automatically expire old data based on time
  • Range queries: Efficient time-range queries with aggregation (avg, sum, min, max, count)
  • Labels: Tag time-series with metadata for filtering
  • Multi-series queries: Query multiple time-series in a single command
  • Grafana integration: Native Grafana datasource plugin
  • Prometheus adapter: Prometheus remote storage adapter for RedisTimeSeries

Docker Compose Deployment

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
version: "3.8"
services:
  redis-timeseries:
    image: redis/redis-stack-server:latest
    ports:
      - "6380:6379"
    volumes:
      - redis-ts-data:/data
    command: >
      redis-server
      --loadmodule /opt/redis-stack/lib/redistimeseries.so
      RETENTION_POLICY 86400000
      COMPACTION_POLICY "avg:1m:1h;avg:10m:1d;avg:1h:30d"
    restart: unless-stopped

volumes:
  redis-ts-data:

Installation

1
2
3
4
5
# Redis Stack includes RedisTimeSeries
docker run -d -p 6379:6379 redis/redis-stack-server:latest

# Or load on existing Redis
redis-server --loadmodule /path/to/redistimeseries.so

Time-Series Operations

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
# Create a time-series with labels
redis-cli TS.CREATE cpu:usage:server1 RETENTION 86400000 LABELS host server1 type cpu

# Add data points
redis-cli TS.ADD cpu:usage:server1 * 75.3
redis-cli TS.ADD cpu:usage:server1 * 82.1
redis-cli TS.ADD cpu:usage:server1 * 68.7

# Query a time range with aggregation
redis-cli TS.RANGE cpu:usage:server1 -1 +1 AGGREGATION avg 60000

# Create downsampling rules
redis-cli TS.CREATERULE cpu:usage:server1 cpu:usage:server1:10m AGGREGATION avg 600000

# Query across multiple series
redis-cli TS.MRANGE - + FILTER host=server1 TYPE=cpu AGGREGATION avg 60000

Choosing the Right Redis Module

These modules serve complementary purposes and are often used together:

  • RediSearch is the right choice when you need full-text search capabilities on top of Redis data. It’s particularly powerful for e-commerce product search, document search, and semantic search (via vector similarity). If you’re currently running Elasticsearch for simple search workloads, RediSearch can often replace it with significantly lower infrastructure overhead.

  • RedisInsight is essential for any self-hosted Redis deployment that needs visual management. It’s the primary tool for monitoring Redis performance, debugging queries, managing clusters, and working with Redis modules through a GUI rather than the CLI.

  • RedisTimeSeries excels at metrics collection, IoT sensor data, application telemetry, and any workload where you need to store and query timestamped numeric values at high throughput. If you’re considering InfluxDB or TimescaleDB for simple time-series workloads, RedisTimeSeries offers comparable performance with simpler operational overhead.

FAQ

Can I run all three Redis modules on the same Redis instance?

Yes. Redis Stack ships with RediSearch, RedisTimeSeries, RedisJSON, RedisGraph, and RedisBloom pre-loaded. You can run all modules simultaneously on a single Redis instance, or load individual modules on a standard Redis server.

Does RediSearch replace Elasticsearch?

For many use cases, yes. RediSearch handles full-text search, faceted filtering, and vector similarity search. However, Elasticsearch has advantages for very large datasets (disk-based storage vs. in-memory), complex text analysis pipelines, and distributed search across many nodes. RediSearch is ideal when your dataset fits in memory and you want lower operational complexity.

How does RedisTimeSeries compare to InfluxDB?

RedisTimeSeries offers faster write and query performance for in-memory workloads. InfluxDB provides better long-term storage (disk-based), more advanced query languages (Flux), and built-in data retention management. Choose RedisTimeSeries for hot-path metrics and real-time dashboards; choose InfluxDB for long-term metric storage and complex analytics.

Is RedisInsight free to use?

Yes, RedisInsight is free and open-source. It can connect to any Redis-compatible server, including self-hosted Redis, Redis Cluster, Redis Enterprise, and cloud-hosted Redis instances.

How do I persist RediSearch indexes across Redis restarts?

RediSearch indexes are stored as part of Redis’s persistence mechanism (RDB or AOF). When Redis restarts and loads its persistence file, all RediSearch indexes are automatically restored. Ensure you have RDB or AOF persistence enabled in your Redis configuration.

What is the maximum data size for RedisTimeSeries?

RedisTimeSeries stores data in Redis memory, so the maximum size is limited by available RAM. For a Redis instance with 16 GB RAM, you can typically store tens of millions of time-series data points. Use downsampling rules to aggregate old data and reduce memory consumption. For larger datasets, consider using Redis with Redis on Flash (hybrid memory/disk storage).