Valkey#

警告

本页记录了 LMCache 的进程内模式(已弃用)的行为。请考虑使用 LMCache MP 模式 以获得更好的功能支持和性能。有关此页面的 MP 模式等效内容,请参见 RESP (Redis/Valkey)

概述#

Valkey 是一个开源(BSD)高性能键值数据存储,并且是 LMCache 中支持的远程 KV Cache 卸载选项之一。其他一些远程后端包括 MooncakeRedisInfiniStore

先决条件#

要使用此连接器,您需要 valkey-glide 2.0 或更高版本。

# Install Valkey-GLIDE (Minimum 2.0.0 or higher)
$ pip install valkey-glide

配置参考#

支持以下 extra_config 键:

默认

描述

valkey_num_workers

8

每个 GLIDE 客户端连接的工作线程数量。

valkey_mode

"standalone"

"standalone""cluster"。集群模式从种子节点自动发现拓扑。

tls_enable

false

启用 TLS。ElastiCache Serverless 需要此项。

valkey_username

""

认证用户名。

valkey_password

""

认证密码。

valkey_database

数据库 ID(仅在独立模式下使用,在集群模式下被忽略)。

valkey_enable_ttl

false

特性标志。当为 true 时,每个键都带有过期时间(参见 valkey_ttl_sec),因此 Valkey/Redis 的 volatile-* 逐出策略可以在节点达到 maxmemory 时回收 L2 缓存键。当为 ``false``(默认值)时,键会被持久化而不带 TTL。

valkey_ttl_sec

86400

键的 TTL(生存时间),仅在 valkey_enable_ttltrue 时应用。必须是正整数。如果启用该标志但未提供此键,则默认为 ``86400``(24 小时)。

request_timeout

5.0

GLIDE 请求超时时间(以秒为单位)。也用于 Python 端的 Future 超时。

connection_timeout

10.0

初始客户端连接的 GLIDE 连接超时时间(以秒为单位)。

示例配置#

独立模式#

基本 Valkey 配置(独立模式)#

chunk_size: 256
remote_url: "valkey://<your host>:6379"
remote_serde: "naive"
extra_config:
  valkey_username: "Your username"
  valkey_password: "Your password"

带数据库的独立模式 Valkey 配置#

chunk_size: 256
remote_url: "valkey://<your host>:6379"
remote_serde: "naive"
extra_config:
  valkey_username: "Your username"
  valkey_password: "Your password"
  valkey_database: 0

带有键 TTL(易失性逐出)的独立模式 Valkey 配置#

启用每个键的 TTL,以便配置为 volatile-lru / volatile-lfu 逐出策略的节点在达到 maxmemory 后可以回收 L2 缓存键。如果没有 TTL,这些策略将永远不会逐出 KV 缓存键,这可能会导致远程缓存阻塞。

chunk_size: 256
remote_url: "valkey://<your host>:6379"
remote_serde: "naive"
extra_config:
  valkey_username: "Your username"
  valkey_password: "Your password"
  valkey_enable_ttl: true
  valkey_ttl_sec: 3600   # keys expire after 1 hour

集群模式#

集群模式 Valkey 配置(端点)#

例如,ElastiCache 中的配置端点如下:

<cache-name>.<identifier>.clustercfg.<region>.cache.amazonaws.com

您需要在 <your host> 中添加此 DNS 名称。

chunk_size: 256
remote_url: "valkey://<your host>:6379"
remote_serde: "naive"
extra_config:
  valkey_mode: "cluster"
  valkey_username: "Your username"
  valkey_password: "Your password"

集群模式 Valkey 配置(节点)#

节点直接部署并配置为集群模式,而无需通过 DNS 名称 (CNAME) 连接它们。

在这种情况下,您只需输入多个 IP 主机和端口。

示例:172.0.0.1:7001, 172.0.0.2:7002 ... 172.0.0.6:7006

chunk_size: 256
remote_url: "valkey://<your host 1>:<your port 1>, <your host 2>:<your port 2>, ... <your host N>:<your port N>"
remote_serde: "naive"
extra_config:
  valkey_mode: "cluster"
  valkey_username: "Your username"
  valkey_password: "Your password"

带编号数据库的集群模式 Valkey 配置(Valkey 9.0+ 和 Valkey-GLIDE 2.1+)#

Valkey 连接器支持在使用 DNS 的端点和使用 IP 和端口对的节点方法中使用编号数据库。

chunk_size: 256
remote_url: "valkey://<your host>:6379"
remote_serde: "naive"
extra_config:
  valkey_mode: "cluster"
  valkey_username: "Your username"
  valkey_password: "Your password"
  valkey_database: 1

TLS / ElastiCache Serverless#

ElastiCache Serverless 需要 TLS。设置 tls_enable: true

chunk_size: 256
remote_url: "valkey://<serverless-endpoint>:6379"
remote_serde: "naive"
extra_config:
  valkey_mode: "cluster"
  tls_enable: true
  valkey_num_workers: 32

性能调优#

对于大型模型(例如,70B,TP=8),增加工作线程数量以提高吞吐量:

chunk_size: 256
remote_url: "valkey://<your host>:6379"
remote_serde: "naive"
pre_caching_hash_algorithm: sha256_cbor_64bit  # Required for TP>1
extra_config:
  valkey_mode: "cluster"
  valkey_num_workers: 32