Back to blog

// OSSeva Blog

Operations

Does Valkey Support Vector Search? valkey-search, ElastiCache for Valkey and Redis Compared

Matt Reynolds8 min read

The short answer

Yes, Valkey supports vector search, through the valkey-search module. The core Valkey server does not index vectors on its own. valkey-search is a separate module from the Valkey project, licensed BSD-3-Clause, that adds the FT.* commands: create an index over hashes or JSON documents, then run nearest-neighbour queries with HNSW or exact KNN, combined with tag, numeric and, from 1.2, full-text filters.

Version matters more than usual. valkey-search 1.0 runs on Valkey 8.1.1 and later; 1.1 and 1.2 need Valkey 9.0.1 or later; the 1.3 release candidate needs 9.1.0. On AWS, ElastiCache for Valkey offers vector search from version 8.2 and the wider search feature set from 9.0, on node-based clusters at no additional cost.

valkey-search versions at a glance

ReleaseDateValkey requiredWhat it added
1.0.028 May 20258.1.1 or laterFirst GA: FT.CREATE, FT.SEARCH, FT.INFO, FT.DROPINDEX, FT._LIST; HNSW and FLAT vector indexes; numeric and tag filters; cluster support
1.1.024 December 20259.0.1 or laterFT.AGGREGATE; indexes and queries without a vector field
1.2.017 March 20269.0.1 or laterFull-text search; SORTBY; up to 1,000 indexes by default
1.2.17 July 20269.0.1 or laterStability and correctness fixes, many found by fuzzing
1.3.0-rc17 October 20269.1.0 or laterRelease candidate: BM25 relevance scoring, FT.HYBRID rank fusion of text and vector results, FLOAT16 and BFLOAT16 vectors, vector range queries

1.3 is a release candidate, so production clusters should stay on 1.2.1 until a GA release ships.

How valkey-search works

An index is defined over a key prefix. Updates to matching hashes or JSON documents flow into the index on background threads, and queries run there too. Both standalone and cluster mode are supported; in cluster mode the keyspace is spread across shards, and if some replication lag is acceptable you can send queries to replicas to scale reads. For filtered vector queries, a query planner chooses between filtering first and then searching, or filtering during the similarity search.

The quickest way to try it is the valkey/valkey-bundle image, which ships Valkey with the JSON, Bloom, Search and LDAP modules already loaded. On your own servers, load the module at start-up:

valkey-server --loadmodule /path/to/libsearch.so

Then define an index and query it. The vector itself is passed as a binary string of FLOAT32 values from your client library:

FT.CREATE docs ON HASH PREFIX 1 doc:
  SCHEMA category TAG
         embedding VECTOR HNSW 6 TYPE FLOAT32 DIM 1536 DISTANCE_METRIC COSINE

HSET doc:1 category "billing" embedding "<1536 FLOAT32 values as bytes>"

FT.SEARCH docs "@category:{billing}=>[KNN 10 @embedding $vec]"
  PARAMS 2 vec "<query vector as bytes>"

Replace the filter with * to search every vector in the index.

ElastiCache for Valkey vector search

AWS runs its own build of the search capability in ElastiCache for Valkey. According to the ElastiCache documentation:

  • Valkey 8.2 on ElastiCache supports vector search; Valkey 9.0 and above add numeric, tag, full-text and hybrid queries and aggregations.
  • It is available on node-based clusters in all AWS Regions at no additional cost, on all instance types except nodes with data tiering. t3 and t4g nodes need a larger memory reserve.
  • Vectors can have up to 32,768 dimensions. A cluster can hold 1,000 indexes on 9.0 and above, but only 10 on 8.2.
  • RDB files that contain search indexes can only be loaded by ElastiCache Valkey 8.2 or higher, which matters if you plan to export a snapshot to a self-managed server.
  • FT.CREATE and FT.DROPINDEX cannot run inside MULTI/EXEC or a script.

The pages describe node-based clusters. If you plan to use ElastiCache Serverless, confirm support in the current documentation before you design around it.

Valkey vs Redis for vector search

In Redis 8, the search and query engine that used to ship as the RediSearch module is part of Redis Open Source, along with JSON, time series and probabilistic types. Redis supports FLAT, HNSW and SVS-VAMANA vector indexes, and Redis 8 also introduced vector sets, a separate data type queried with VADD and VSIM. The licence is the real difference.

Valkey with valkey-searchElastiCache for ValkeyRedis 8 Open Source
LicenceBSD-3-Clause (server and module)Managed AWS serviceYour choice of RSALv2, SSPLv1 or AGPLv3
Where it runsAnywhere you run ValkeyAWS onlyAnywhere you run Redis
Vector indexesHNSW, FLATVector search from 8.2FLAT, HNSW, SVS-VAMANA, plus vector sets
Full-text and aggregationsFrom 1.2 and 1.1, on Valkey 9.0.1 or laterFrom 9.0Yes
Command surfaceFT.*, aiming at RediSearch compatibilityFT.*FT.* and V* vector set commands

Redis's own licensing page states that RSALv2 and SSPLv1 are not open source licences and that AGPLv3 is OSI-approved. AGPLv3 is a copyleft licence written for software that runs over a network, so derivative works must be released under it too. For a team that wants a permissive licence end to end, Valkey with valkey-search is the option. Redis 7.2 and earlier remain BSD-licensed, but they predate the integrated query engine. Our Valkey vs Redis comparison covers the licence history, and Redis Enterprise alternatives covers the commercial side.

Moving a RediSearch application to Valkey

The valkey-search project states its goal plainly: applications built against RediSearch with standard client libraries should run against valkey-search with little or no change. Release 1.2 targets RediSearch 2 behaviour and 1.3 targets Redis 8, for Dialect 2 queries and the features valkey-search implements. A few things do not carry over:

  • Index data. RDB, AOF and replication formats for indexes are not compatible, and you cannot replicate index state between Redis and Valkey. Recreate the indexes on Valkey and let them backfill from the data.
  • Missing features. A RediSearch option valkey-search does not implement returns an error rather than a different result. Run your real queries against a test cluster first.
  • Vector sets. valkey-search documents the FT.* command family only. Code that uses Redis 8 vector sets needs rewriting to FT.* indexes.
  • Access control. valkey-search enforces ACL key restrictions on FT.SEARCH and FT.AGGREGATE, which RediSearch does not. A user can query an index only if it may read every key the index prefix could cover.

For the data move itself, see how to migrate from Redis to Valkey.

Where OSSeva fits

OSSeva for Redis and Valkey supports Valkey 7.2.x and 8.x today, alongside community Redis 6.2, 7.0 and 7.2, with one contract and one escalation path across them and the rest of your data stack, priced per cluster. valkey-search 1.1 and later require Valkey 9.0.1 or later, and the search module is not part of the published OSSeva coverage. If vector search on Valkey is in your plans, raise Valkey 9 and valkey-search on the discovery call so the answer is in writing before you build on it.

Frequently asked questions

Does Valkey support vector search?

Yes, with the valkey-search module, which adds FT.CREATE and FT.SEARCH with HNSW and exact KNN vector indexes. The core server alone does not.

Is valkey-search production ready?

valkey-search 1.0 reached GA in May 2025, and 1.2.1, from July 2026, is the current stable release. 1.3 is a release candidate as of October 2026.

Which Valkey version do I need for valkey-search?

8.1.1 or later for 1.0, 9.0.1 or later for 1.1 and 1.2, and 9.1.0 or later for the 1.3 release candidate.

Does ElastiCache for Valkey support vector search?

Yes. ElastiCache Valkey 8.2 supports vector search, and 9.0 and above add full-text, tag, numeric, hybrid queries and aggregations, on node-based clusters at no additional cost.

Is the Redis Query Engine open source?

From Redis 8 it ships inside Redis Open Source under a choice of RSALv2, SSPLv1 or AGPLv3. Only AGPLv3 of the three is an OSI-approved open source licence.

Can I use my RediSearch client library with Valkey?

In most cases, yes. valkey-search aims to accept the same commands and return the same responses for the features it implements. Test with your own queries, because unimplemented options return errors.

Tags

ValkeyVector Searchvalkey-searchElastiCacheRedis

Ready to get your open source under control?

Talk to an OSSeva engineer about CVE coverage, compliance, and migration support for your stack.