The Valkey documentation is managed in markdown files in the valkey-doc repository. It's released under the Creative Commons Attribution-ShareAlike 4.0 International license.
Valkey Documentation
1. Introduction
- What is Valkey? See Introduction.
- Quick start: Get started with Valkey.
- Valkey Bundle: Get started with Valkey Bundle.
- FAQ: Frequently asked questions.
2. Developer Guide
Core Concepts
- Data types: Keys are strings, but values can be of many different data types.
- The full list of commands, with documentation for each of them.
- Pipelining: How to send multiple commands at once, saving on round trip time.
- Transactions: Valkey's approach to atomic transactions.
- Expires: How to set a Time To Live (TTL) on key so that it will be automatically removed from the server when it expires.
- Pub/Sub: Using Valkey as a message broker using the Publish/Subscribe messaging system.
- Keyspace notifications: Get notifications of keyspace events via Pub/Sub.
- Keyspace management: How to alter, query, and navigate the keyspace.
Application Patterns & Tutorials
- Valkey as an LRU cache: How to configure Valkey as a cache with a fixed amount of memory and automatic eviction of keys.
- Client side caching: How a client can be notified by the server when a key has changed.
- Distributed locks: Implementing a distributed lock manager.
- Secondary indexes: How to simulate secondary indexes, composed indexes and traverse graphs using various data structures.
- Writing a simple Twitter clone with PHP and Valkey
3. Extending Valkey
Server-side scripting in Valkey
- Programmability overview: An overview of programmability in Valkey.
- Introduction to Eval Scripts: An introduction about using cached scripts.
- Introduction to Valkey Functions: An introduction about using functions.
- Valkey Lua API: The embedded Lua 5.1 interpreter runtime environment and APIs.
- Debugging Lua scripts: An overview of the native Valkey Lua debugger for cached scripts.
Valkey modules API
- Introduction to Valkey modules: Extend Valkey using dynamically linked modules.
- Implementing native data types: Modules scan implement new data types (data structures and more) that look like built-in data types. This documentation covers the API to do so.
- Blocking operations: Write commands that can block the client (without blocking Valkey) and can execute tasks in other threads.
- Modules API reference: Documentation of all module API functions. Low level details about API usage.
4. Administration
Core Management
- Installation: How to install and configure Valkey. This targets people without prior experience with Valkey.
- Release Downloads: Lists links to download all current and previous releases.
- valkey-cli: The Valkey command line interface, used for administration, troubleshooting and experimenting with Valkey.
- valkey-server: How to run the Valkey server.
- Configuration: How to configure Valkey.
- Persistence: Options for configuring durability using disk backups.
- Signals Handling: How Valkey handles signals.
- Connections Handling: How Valkey handles clients connections.
- Migration: How to migrate from Redis to Valkey and check Redis compatibility.
- Releases and Versioning: Valkey's development cycle and version numbering.
- Administration: Various administration topics.
Deployment Topology
- Replication: What you need to know to set up primary-replica replication.
- Sentinel: Valkey Sentinel is one of the official high availability deployment modes.
- Sentinel client spec: How to build clients for Valkey Sentinel.
- Cluster tutorial: A gentle introduction to Valkey Cluster, a deployment mode for horizontal scaling and high availability.
- Cluster specification: The more formal description of the behavior and algorithms used in Valkey Cluster.
- Atomic slot migration: An overview of atomic slot migration in Valkey Cluster.
Security
- Security: An overview of Valkey's security.
- Access Control Lists: ACLs make it possible to allow users to run only selected commands and access only specific key patterns.
- TLS: How to use TLS for communication.
Platform Specific
- ARM and Raspberry Pi: ARM and the Raspberry Pi are supported platforms. This page contains general information and benchmarks.
- RDMA: An overview of RDMA support.
5. Performance & Troubleshooting
- Troubleshooting: Problems? Bugs? High latency? Other issues? Use our problems troubleshooting page as a starting point to find more information.
- Memory optimization: Understand how Valkey uses RAM.
- Hot key tracking: Find the most frequently accessed keys on a server.
- Latency monitoring: Integrated latency monitoring and reporting help tuning for low latency.
- valkey-benchmark: The benchmarking tool shipped with Valkey.
- On-CPU profiling and tracing: How to find on-CPU resource bottlenecks.
- Debugging: How to debug Valkey server processes.
- Diagnosing latency issues: How to diagnose latency problems with Valkey.
- Mass insertion of data: How to add a big amount of data to a Valkey instance in a short time.
6. Low-Level Internals
- Protocol specification: The client-server protocol, for client authors.
- Command key specifications: How to extract the names of keys accessed by every command.
- Command tips: Command tips communicate non-trivial execution modes and post-processing information about commands.
- Command arguments: An overview of command arguments as returned by the
COMMAND DOCScommand.
Alphabetical index
- ACL Valkey Access Control List
- ARM support Exploring Valkey on the ARM CPU Architecture
- Administration Advice for configuring and managing Valkey in production
- Atomic slot migration Overview of atomic slot migration
- Benchmarking tool Using the valkey-benchmark utility on a Valkey server
- Bitfields Introduction to Bitfields
- Bitmaps Introduction to Bitmaps
- Bloom Filters Introduction to Bloom Filters
- Bulk loading Writing data in bulk using the RESP protocol
- CLI Valkey command line interface
- CPU profiling Performance engineering guide for on-CPU profiling and tracing
- Client handling How the Valkey server manages client connections
- Client-side caching Server-assisted, client-side caching in Valkey
- Cluster specification Detailed specification for Valkey cluster
- Cluster tutorial Horizontal scaling with Valkey Cluster
- Command arguments How Valkey commands expose their documentation programmatically
- Command key specifications What are command key specification and how to use them in your client
- Command tips Get additional information about a command
- Configuration Overview of valkey.conf, the Valkey configuration file
- Data types Overview of data types supported by Valkey
- Debugging A guide to debugging Valkey server processes
- Debugging Lua scripts How to use the built-in Lua debugger
- Diagnosing latency issues Finding the causes of slow responses
- Distributed Locks A distributed lock pattern with Valkey
- FAQ Commonly asked questions when getting started with Valkey
- Functions Scripting with functions stored on the server
- Geospatial Introduction to the Valkey Geospatial data type
- Hashes Introduction to Hashes
- High availability with Valkey Sentinel High availability for non-clustered Valkey
- History How the Valkey project started
- Hot key tracking Finding the most frequently accessed keys on a Valkey server
- HyperLogLog HyperLogLog is a probabilistic data structure that estimates the cardinality of a set.
- Installation Install Valkey on Linux, macOS, and Windows
- Introduction Learn about the Valkey open source project
- Key eviction Overview of Valkey key eviction policies (LRU, LFU, etc.)
- Keyspace Managing keys in Valkey: Key expiration, scanning, altering and querying the key space
- Keyspace notifications Monitor changes to Valkey keys and values in real time
- LDAP Authentication Introduction to LDAP / Active Directory Authentication
- Latency monitoring Discovering slow server events in Valkey
- Lists Introduction to Lists
- Lua API reference Executing Lua in Valkey
- Memory optimization Strategies for optimizing memory usage in Valkey
- Migration from Redis to Valkey How to migrate from Redis to Valkey and check Redis compatibility
- Modules API for native types How to use native types in a Valkey module
- Modules API reference Reference for the Valkey Modules API
- Modules Introduction Introduction to writing Valkey modules
- Modules and blocking commands How to implement blocking commands in a Valkey module
- Patterns example Learn several Valkey patterns by building a Twitter clone
- Persistence How Valkey writes data to disk
- Pipelining How to optimize round-trip times by batching Valkey commands
- Programmability Extending Valkey with Lua and Valkey Functions
- Pub/Sub How to use pub/sub channels in Valkey
- Quick start guide Understand how to use basic Valkey data types
- RDMA experimental support Valkey Over RDMA experimental support
- Releases and versioning schema How new versions of Valkey are released and supported
- Replication How Valkey supports high availability and failover with replication
- Scripting with Lua Executing Lua in Valkey
- Secondary indexing Building secondary indexes in Valkey
- Security Security model and features in Valkey
- Sentinel client spec How to build clients for Valkey Sentinel
- Serialization protocol specification Valkey's serialization protocol (RESP) is the wire protocol that clients implement
- Sets Introduction to Sets
- Signal handling How Valkey handles common Unix signals
- Sorted Sets Introduction to Sorted Sets
- Streams Introduction to Streams
- Strings Introduction to Strings
- TLS Valkey TLS support
- The Valkey server Manual for valkey-server, the Valkey server program
- Transactions How transactions work in Valkey
- Troubleshooting Valkey Problems with Valkey? Start here.
- Valkey Bundle Getting Started Guide How to get started with Valkey Bundle
- Valkey JSON Introduction to Valkey JSON
- Valkey Search - Aggregation Expressions Valkey Search Module Aggregation Expression Language
- Valkey Search - Configuration Valkey Search Module Configurable Settings
- Valkey Search - Data Formats Valkey Search Module Formats for Input Field Data
- Valkey Search - INFO SEARCH Metrics Valkey Search Module INFO SEARCH Metrics
- Valkey Search - Metrics and configurations Valkey Search Module INFO SEARCH
- Valkey Search - Overview Valkey Search Module Overview
- Valkey Search - Queries Valkey Search Module Query Language Syntax, Semantics and Examples