Files

Search LMCache KV Entry in Redis

This example shows how to search the LMCache KV entry in Redis.

Installing Redis

Ubuntu Installation

sudo apt update
sudo apt install redis-server
sudo systemctl start redis-server
sudo systemctl status redis-server

RHEL/CentOS Installation

sudo yum install redis
sudo systemctl start redis
sudo systemctl enable redis
sudo systemctl status redis

Configuration Steps

Create a LMCache Configuration File

Create a file /tmp/lmcache-config.yaml with Redis configuration:

# Basic LMCache settings
chunk_size: 256
local_cpu: True
max_local_cpu_size: 5

# Redis connection
remote_url: "redis://your-redis-host:6379"

Run the Container with Redis Support

docker run --runtime nvidia --gpus all \
    -v /tmp/lmcache-config.yaml:/config/lmcache-config.yaml \
    --env "LMCACHE_CONFIG_FILE=/config/lmcache-config.yaml" \
    --env "HF_TOKEN=<YOUR_HUGGINGFACE_TOKEN>" \
    --env "LMCACHE_CHUNK_SIZE=256" \
    --env "LMCACHE_LOCAL_CPU=True" \
    --env "LMCACHE_MAX_LOCAL_CPU_SIZE=5" \
    -v ~/.cache/huggingface:/home/ubuntu/.cache/huggingface \
    --network host \
    lmcache/vllm-openai:latest \
    mistralai/Mistral-7B-Instruct-v0.2 --port 8001 --kv-transfer-config \
    '{"kv_connector":"LMCacheConnectorV1","kv_role":"kv_both"}'

Then run the following command to query vLLM to populate the LMCache:

curl -X 'POST' \
 'http://127.0.0.1:8001/v1/chat/completions' \
 -H 'accept: application/json' \
 -H 'Content-Type: application/json' \
 -d '{
    "model": "mistralai/Mistral-7B-Instruct-v0.2",
    "messages": [
    {"role": "system", "content": "You are a helpful AI coding assistant."},
    {"role": "user", "content": "Write a segment tree implementation in python"}
    ],
    "max_tokens": 150
 }'

Viewing and Managing LMCache Entries in Redis

LMCache Redis Keys

LMCache stores data in Redis using a structured key format. Each key contains the following information in a delimited format:

model_name@world_size@worker_id@chunk_hash

Where:

  • model_name: Name of the language model
  • world_size: Total number of workers in distributed deployment
  • worker_id: ID of the worker that created this cache entry
  • chunk_hash: Hash of the token chunk (SHA-256 based)

For example, a typical key might look like:

vllm@mistralai/Mistral-7B-Instruct-v0.2@1@0@a1b2c3d4e5f6...

Using redis-cli to View LMCache Data

To inspect and manage LMCache entries in Redis:

Connect to Redis

redis-cli -h localhost -p 6379

List all LMCache keys

# Show all keys
KEYS *

# Show keys for a specific model
KEYS *Mistral-7B*

For example, to check if a key exists:

localhost:6379> KEYS *
1) "vllm@mistralai/Mistral-7B-Instruct-v0.2@1@0@2aea46f4fa38170e8425a6e6ee3c5173a1fa97917bc1a583888c87ad4f9a9a20metadata"
2) "vllm@mistralai/Mistral-7B-Instruct-v0.2@1@0@2aea46f4fa38170e8425a6e6ee3c5173a1fa97917bc1a583888c87ad4f9a9a20kv_bytes"

Check if a key exists

EXISTS "vllm@model_name@1@0@hash_value"

View memory usage for a key

MEMORY USAGE "vllm@model_name@1@0@hash_value"

Delete specific keys

# Delete a single key
DEL "vllm@model_name@1@0@hash_value"

# Delete all keys matching a pattern
redis-cli -h <host> -p <port> --scan --pattern "vllm@model_name*" | xargs redis-cli -h <host> -p <port> DEL

Monitor Redis in real-time

MONITOR

Get Redis stats for LMCache

# Get memory stats
INFO memory

# Get statistics about operations
INFO stats