Valkey - Mem0

Valkey Vector Store

Valkey is an open source (BSD) high-performance key/value datastore that supports a variety of workloads and rich datastructures including vector search.

Installation

pip install mem0ai[vector-stores]

Usage

Python

config = {
    "vector_store": {
        "provider": "valkey",
        "config": {
            "collection_name": "test",
            "valkey_url": "valkey://localhost:6379",
            "embedding_model_dims": 1536,
            "index_type": "flat"
        }
    }
}

m = Memory.from_config(config)
messages = [\
    {"role": "user", "content": "I'm planning to watch a movie tonight. Any recommendations?"},\
    {"role": "assistant", "content": "How about thriller movies? They can be quite engaging."},\
    {"role": "user", "content": "I'm not a big fan of thriller movies but I love sci-fi movies."},\
    {"role": "assistant", "content": "Got it! I'll avoid thriller recommendations and suggest sci-fi movies in the future."}\
]
m.add(messages, user_id="alice", metadata={"category": "movies"})

TypeScript

import { Memory } from 'mem0ai/oss';

const config = {
  vectorStore: {
    provider: 'valkey',
    config: {
      collectionName: 'test',
      valkeyUrl: 'valkey://localhost:6379',
      embeddingModelDims: 1536,
      indexType: 'flat',
    },
  },
};

const memory = new Memory(config);
const messages = [\
  { role: 'user', content: "I'm planning to watch a movie tonight. Any recommendations?" },\
  { role: 'assistant', content: 'How about thriller movies? They can be quite engaging.' },\
  { role: 'user', content: "I'm not a big fan of thriller movies but I love sci-fi movies." },\
  { role: 'assistant', content: "Got it! I'll avoid thriller recommendations and suggest sci-fi movies in the future." },\
];
await memory.add(messages, { userId: 'alice', metadata: { category: 'movies' } });

Parameters

Here are the parameters available for configuring Valkey:

Parameter Description Default Value
collection_name The name of the collection to store the vectors mem0
valkey_url Connection URL for the Valkey server valkey://localhost:6379
embedding_model_dims Dimensions of the embedding model 1536
index_type Vector index algorithm (hnsw or flat) hnsw
hnsw_m Number of bi-directional links for HNSW 16
hnsw_ef_construction Size of dynamic candidate list for HNSW 200
hnsw_ef_runtime Size of dynamic candidate list for search 10
cluster_mode Enable cluster mode for Valkey cluster (CME) deployments false
timezone Timezone for timestamp handling UTC
Parameter Description Default Value
collectionName The name of the collection to store the vectors mem0
valkeyUrl Connection URL for the Valkey server valkey://localhost:6379
embeddingModelDims Dimensions of the embedding model 1536
indexType Vector index algorithm (hnsw or flat) hnsw
hnswM Number of bi-directional links for HNSW 16
hnswEfConstruction Size of dynamic candidate list for HNSW 200
hnswEfRuntime Size of dynamic candidate list for search 10
clusterMode Enable cluster mode for Valkey cluster (CME) deployments false
timezone Timezone for timestamp handling UTC

Cluster Mode

To use Valkey with cluster mode enabled (CME), set cluster_mode to true:

config = {
    "vector_store": {
        "provider": "valkey",
        "config": {
            "collection_name": "memories",
            "valkey_url": "valkey://cluster-endpoint:6379",
            "embedding_model_dims": 1536,
            "cluster_mode": True
        }
    }
}

When cluster mode is enabled, the connector uses ValkeyCluster instead of the standalone client, which handles MOVED/ASK redirections automatically. Search queries are coordinated across all shards by the valkey-search module’s built-in coordinator. See the valkey-search documentation for details on cluster mode behavior.