Valkey 安装配置:一步步教你搭建
1. 简介
Valkey 是一个高性能、开源的内存数据存储,最初源于 Redis 的一个分支,由 Linux 基金会支持。它提供了键值存储和多种数据结构,以微秒级的延迟操作著称,是缓存、消息队列和实时分析等场景的理想选择。本指南将详细介绍 Valkey 的安装和配置过程,帮助你轻松搭建 Valkey 服务。
2. 安装 Valkey
Valkey 的安装方式多种多样,你可以根据自己的操作系统和偏好选择最合适的方法。
2.1 从源代码编译安装
从源代码安装可以让你获得最新版本并进行更灵活的定制。
-
下载最新版本:
访问 Valkey 官方网站 valkey.io/download 或 Valkey 的 GitHub 发布页面,下载最新的valkey-X.Y.Z.tar.gz压缩包(请将X.Y.Z替换为实际版本号)。 -
解压文件:
打开终端,使用tar命令解压下载的压缩包:
bash
tar -xzvf valkey-X.Y.Z.tar.gz -
进入目录:
进入解压后的 Valkey 目录:
bash
cd valkey-X.Y.Z -
编译:
运行make命令编译 Valkey。这可能需要几分钟时间。
bash
make -
安装 (可选):
编译成功后,你可以选择将 Valkey 的可执行文件安装到系统路径(例如/usr/local/bin),以便在任何位置直接运行。
bash
sudo make install
注意:make install并非必需,你也可以直接从 Valkey 源代码目录运行可执行文件。
2.2 使用包管理器安装
对于大多数 Linux 和 macOS 用户,使用系统自带的包管理器是最便捷的方式。
-
macOS (Homebrew):
bash
brew install valkey
# 启动 Valkey 服务
brew services start valkey
# 查看服务状态
brew services info valkey
# 停止服务
brew services stop valkey -
Debian/Ubuntu (apt):
bash
sudo apt update
sudo apt install valkey
# 如果需要兼容 Redis 命令行工具(如 redis-cli),可以安装 valkey-redis-compat
sudo apt install valkey-redis-compat -
CentOS/RHEL/Fedora (yum):
bash
sudo yum install valkey
# 如果需要兼容 Redis 命令行工具(如 redis-cli),可以安装 valkey-compat-redis
sudo yum install valkey-compat-redis -
Alpine Linux (apk):
bash
sudo apk update
sudo apk add valkey
# 如果需要 valkey-cli 命令行工具
sudo apk add valkey-cli
# 如果需要兼容 Redis 命令行工具
sudo apk add valkey-compat
2.3 使用 Docker 安装
Docker 提供了一种轻量级、可移植的方式来运行 Valkey,特别适合开发和测试环境。
-
拉取 Valkey 镜像:
bash
docker pull valkey/valkey -
运行 Valkey 容器:
bash
docker run -d --name valkey -p 6379:6379 valkey/valkey
这条命令会在后台运行一个名为valkey的容器,并将容器的 6379 端口映射到主机的 6379 端口。 -
持久化存储 (推荐):
为了确保数据在容器重启后不丢失,应使用 Docker 卷进行持久化存储:
bash
docker run -d --name valkey -p 6379:6379 -v /path/to/your/valkey_data:/data valkey/valkey
将/path/to/your/valkey_data替换为你希望存储数据的本地路径。
2.4 在 Windows 上安装 (通过 WSL)
Valkey 官方不直接支持 Windows,但可以通过 Windows Subsystem for Linux (WSL) 在 Windows 上运行 Linux 环境中的 Valkey。
- 启用 WSL: 确保你的 Windows 系统已启用 WSL 并安装了一个 Linux 发行版(如 Ubuntu)。
- 在 WSL 中安装: 进入 WSL 终端,按照上述 Linux 环境下的包管理器或从源代码编译的方法安装 Valkey。
3. 运行 Valkey
安装完成后,你可以启动 Valkey 服务。
3.1 在前台运行
这通常用于开发或测试,可以方便地查看日志输出。
bash
valkey-server
要停止服务,只需在终端按下 Ctrl-C。
3.2 作为后台守护进程运行
对于生产环境,强烈建议将 Valkey 作为后台守护进程运行,这需要通过配置文件进行管理。
4. 基本配置 (valkey.conf)
Valkey 的核心配置通过 valkey.conf 文件进行。即使 Valkey 可以使用内置的默认配置启动,但使用专门的配置文件是最佳实践。
-
定位/创建配置文件:
通常,Valkey 源代码的根目录会包含一个valkey.conf模板文件。建议将其复制到一个标准位置进行管理,例如/etc/valkey/。
bash
sudo mkdir -p /etc/valkey
# 假设你当前在 valkey 源代码目录
sudo cp valkey.conf /etc/valkey/6379.conf
将配置文件命名为6379.conf是一种常见做法,尤其是当你计划运行多个 Valkey 实例时,可以按端口号区分。 -
编辑配置文件:
使用你喜欢的文本编辑器打开配置文件(例如/etc/valkey/6379.conf),并修改以下关键指令:port 6379: Valkey 监听的端口。默认是 6379。bind 127.0.0.1: 绑定 Valkey 监听的 IP 地址。127.0.0.1:只允许本地连接。这是最安全的默认设置。0.0.0.0:允许所有网络接口上的连接。请谨慎使用此设置,并务必配合防火墙规则和密码认证来确保安全。
daemonize yes: 将 Valkey 作为后台守护进程运行。pidfile /var/run/valkey_6379.pid: 指定存储进程 ID (PID) 的文件路径。logfile /var/log/valkey_6379.log: 指定 Valkey 日志文件的路径。dir /var/valkey/6379: 指定 Valkey 的工作目录。RDB 快照文件和 AOF 文件将存储在此目录中。请确保此目录存在且 Valkey 进程有写入权限。
示例
valkey.conf关键配置片段:
“`ini监听端口
port 6379
绑定 IP 地址
bind 127.0.0.1
作为守护进程运行
daemonize yes
PID 文件路径
pidfile /var/run/valkey_6379.pid
日志文件路径
logfile /var/log/valkey_6379.log
工作目录
dir /var/valkey/6379
“` -
使用配置文件启动 Valkey:
bash
valkey-server /etc/valkey/6379.conf -
应用配置更改:
如果 Valkey 已经在运行,修改valkey.conf后需要重启 Valkey 服务器才能使更改生效。某些参数可以在运行时使用CONFIG SET命令修改,但这些修改在服务器重启后不会持久化,除非使用CONFIG REWRITE命令将更改写入配置文件。
5. 安全配置
确保 Valkey 实例的安全至关重要,尤其是在生产环境中。
- 绑定地址 (
bind): 始终将 Valkey 绑定到127.0.0.1(localhost) 或受信任的特定网络接口。除非有充分的理由和严格的安全措施,否则避免绑定到0.0.0.0。 - 防火墙: 配置系统防火墙 (如
ufw,firewalld) 限制对 Valkey 默认端口 (6379) 的非信任网络访问。 - 密码认证 (
requirepass): 设置一个强密码来保护 Valkey 实例。
在valkey.conf中添加或修改:
ini
requirepass your_strong_password_here
客户端连接时,需要使用AUTH your_strong_password_here命令进行认证。 - 用户指令 (
user): 对于更精细的权限控制,可以使用user指令为不同的应用程序或用户定义具有特定权限的访问凭证。
6. 持久化配置
Valkey 提供了两种持久化方式,以确保数据在服务器重启后不会丢失。
-
RDB 快照 (RDB Snapshots):
RDB (Redis Database) 方式在指定时间间隔内,将数据集合的快照保存到磁盘上的.rdb文件中。
在valkey.conf中配置save指令:
ini
# 如果 900 秒内 (15 分钟) 至少有 1 个键被修改,则保存
save 900 1
# 如果 300 秒内 (5 分钟) 至少有 10 个键被修改,则保存
save 300 10
# 如果 60 秒内 (1 分钟) 至少有 10000 个键被修改,则保存
save 60 10000
确保dir指令指向一个安全且有足够空间的目录。 -
AOF (Append Only File):
AOF 以日志形式记录每一次写操作,Valkey 启动时会重新执行 AOF 文件中的命令来恢复数据,提供更高的数据持久性。
在valkey.conf中启用 AOF:
ini
appendonly yes
7. 内存管理
高效的内存管理对于 Valkey 的性能至关重要。
-
最大内存限制 (
maxmemory):
设置一个内存使用上限,防止 Valkey 耗尽系统内存。
在valkey.conf中配置:
ini
maxmemory 1gb
这会将 Valkey 的最大内存使用限制为 1GB。 -
内存淘汰策略 (Eviction Policies):
当达到maxmemory限制时,Valkey 需要知道如何处理新的写入请求。
在valkey.conf中配置maxmemory-policy:
ini
maxmemory-policy allkeys-lru
常见的淘汰策略包括:allkeys-lru: 从所有键中淘汰最近最少使用的键 (Least Recently Used)。volatile-lru: 从设置了过期时间的键中淘汰最近最少使用的键。allkeys-random: 随机淘汰所有键。noeviction: 当内存不足时,新的写入操作会返回错误。
8. 测试安装
完成安装和配置后,务必验证 Valkey 是否正常运行。
-
使用
valkey-cli连接:
bash
valkey-cli
如果配置了密码,连接后需要先认证:
bash
AUTH your_strong_password_here -
Ping 服务器:
连接成功后,尝试PING命令:
PING
如果返回PONG,表示服务器正常响应。 -
测试数据操作:
尝试设置和获取一个键值对:
SET mykey "Hello Valkey"
GET mykey
如果能成功获取到 “Hello Valkey”,说明数据存储正常。 -
检查日志:
查看你配置的logfile(例如/var/log/valkey_6379.log),确认 Valkey 是否有异常或错误信息。 -
验证持久化 (如果启用):
如果你启用了 RDB 持久化,可以手动触发一次保存:
bash
valkey-cli SAVE
然后检查dir目录下是否有dump.rdb文件生成。
通过以上步骤,你就可以成功安装、配置并验证你的 Valkey 实例了。享受 Valkey 带来的高性能数据存储体验吧!