文档:安装

这是一份安装指南。您将学习如何安装、运行和体验 Valkey 服务器进程。

下载页面 valkey.io/download 列出了最新版本。

安装 Valkey

以下是安装 Valkey 的几种方法。有关详细的设置技巧,请参阅Valkey 管理

从源代码安装

源代码版本可从 GitHub 的发布页面获取。

解压压缩包(例如 tar -xzvf valkey-8.0.1.tar.gz),并按照随附的 README.md 中的说明进行操作。

容器

Docker Hub 上的容器。

macOS

使用 Homebrew 安装和运行 Valkey

brew install valkey
# To run Valkey as a service, use
brew services start valkey
# Check that it's running using
brew services info valkey
# and stop it using
brew services stop valkey

使用 MacPorts

sudo port install valkey

Linux/BSD 包管理器

已知支持以下包管理器,但此列表并非详尽无遗,且可能并非最新。如果您发现问题,请随时提交 PR 以更新此列表。您可以使用 pkgs.org 网站(仅限 Linux/Unix)或 repology.org 来检查哪些 Valkey 版本可用于您的发行版。

apt(基于 Debian)

目前支持:Debian/Ubuntu/Mint/Devuan/Raspbian/PureOS

sudo apt update
sudo apt install valkey
# For symlinked binaries to redis-cli and redis-server
sudo apt install valkey-compat

apk (Alpine Linux/Kali Linux/Wolfi)

sudo apk update
sudo apk add valkey
# Below relevant for Alpine.
# For valkey-cli
sudo apk add valkey-cli
# For symlinked binaries to redis-cli and redis-server
sudo apk add valkey-compat

yum (CentOS/RHEL/Fedora)

sudo yum install valkey
# For symlinked binaries to redis-cli and redis-server
sudo yum install valkey-compat
# For valkey-doc (can be used with man, e.g. `man hgetall`, `man valkey.conf`, etc.)
sudo yum install valkey-doc

某些版本的 CentOS 和 RHEL 的默认仓库中可能不包含 Valkey。您可以使用 EPEL 仓库 - https://fedoraproject.org/wiki/EPEL 来安装 Valkey。

dnf (Fedora)

sudo dnf install valkey
# For symlinked binaries to redis-cli and redis-server
sudo dnf install valkey-compat
# For valkey-doc (can be used with man, e.g. `man hgetall`, `man valkey.conf`, etc.)
sudo dnf install valkey-doc

其他发行版

# ALT Linux
sudo apt-get install valkey
# Arch Linux/Manjaro
sudo pacman -Sy valkey
# FreeBSD
sudo pkg install valkey
# NixOS
nix-env -i valkey
# openSUSE
sudo zypper install valkey
# Solus
sudo eopkg install valkey
# Void Linux
sudo xbps-install -Su valkey
# Exherbo
cave resolve -x dev-db/valkey

杂项

SlackBuildsOpenPKG 上的 openpkg 可用。

Windows

Valkey 在 Windows 上不受官方支持。但是,您可以使用 WSL (Windows Subsystem for Linux) 在 Windows 上安装 Valkey 进行开发。

测试是否可以使用 CLI 连接

如果您尚未将 Valkey 作为系统服务运行,则可以使用 valkey-server 在前台运行 Valkey,并使用 Ctrl-C 停止它。

当 Valkey 启动并运行后,您可以使用 valkey-cli 进行连接。

外部程序通过 TCP socket 和 Valkey 特定的协议与 Valkey 通信。此协议在针对不同编程语言的 Valkey 客户端库中实现。然而,为了简化 Valkey 的使用,Valkey 提供了一个命令行实用程序,可用于向 Valkey 发送命令。此程序名为 valkey-cli

要检查 Valkey 是否正常工作,首先要做的是使用 valkey-cli 发送 PING 命令。

$ valkey-cli ping
PONG

运行 valkey-cli 后面跟命令名称及其参数,会将此命令发送到在 localhost 的 6379 端口上运行的 Valkey 实例。您可以更改 valkey-cli 使用的主机和端口——只需尝试 --help 选项即可查看用法信息。

运行 valkey-cli 的另一种有趣方式是不带参数:程序将以交互模式启动。您可以输入不同的命令并查看其回复。

$ valkey-cli
127.0.0.1:6379> ping
PONG

保护 Valkey 安全

默认情况下,Valkey 绑定到所有接口并且完全没有身份验证。如果您在与外部互联网隔离且通常与攻击者隔离的高度受控环境中部署 Valkey,则没有问题。然而,如果一个未加固的 Valkey 暴露在互联网上,这将是一个很大的安全隐患。如果您不确定您的环境是否已正确加固,请检查以下步骤以使 Valkey 更加安全

  1. 确保 Valkey 用于监听连接的端口(默认 6379,如果以集群模式运行 Valkey 则额外使用 16379,Sentinel 使用 26379)已受防火墙保护,从而无法从外部世界访问 Valkey。
  2. 使用配置文件,其中设置了 bind 指令,以确保 Valkey 仅监听您正在使用的网络接口。例如,如果您从同一台计算机本地访问 Valkey,则仅监听回环接口 (127.0.0.1)。
  3. 使用访问控制列表 (ACL) 设置身份验证,或使用 requirepass 选项添加额外的安全层,以便客户端需要使用 AUTH 命令进行身份验证。
  4. 如果您的环境需要加密,请使用 TLS 来加密 Valkey 服务器和 Valkey 客户端之间的流量。

确保您理解上述内容并**至少**应用一层防火墙。防火墙到位后,尝试从外部主机使用 valkey-cli 进行连接,以确认实例无法访问。

从您的应用程序中使用 Valkey

当然,仅仅从命令行界面使用 Valkey 是不够的,因为目标是从您的应用程序中使用它。为此,您需要为您的编程语言下载并安装一个 Valkey 客户端库。

您可以在此页面找到针对不同语言的完整客户端列表

Valkey 持久化

您可以在此页面了解Valkey 持久化的工作原理。重要的是要理解,如果您使用默认配置启动 Valkey,Valkey 只会不时地自动保存数据集。例如,如果您的数据至少有 100 次更改,则至少在五分钟后保存。如果您希望数据库在重启后持久化并重新加载,请确保每次要强制进行数据集快照时手动调用 SAVE 命令。或者,您可以在退出前使用 SHUTDOWN 命令将数据保存到磁盘。

$ valkey-cli shutdown

这样,Valkey 将在退出前将数据保存到磁盘。强烈建议阅读持久化页面,以更好地了解 Valkey 持久化的工作原理。

将 Valkey 安装为系统服务

从命令行运行 Valkey 仅适用于进行一些尝试或开发。然而,在某些时候您会有一个实际的应用程序需要在真实服务器上运行。对于这种用法,强烈建议将 Valkey 安装为系统服务,以便在系统重启后一切都能正常启动。受支持的 Linux 发行版提供的软件包已包含将 Valkey 服务器作为服务启动的功能。

Valkey 支持 systemd,但本文档是在 systemd 广泛应用之前为 init 脚本编写的。网上有许多关于如何设置 systemd 服务的指南。

本节的其余部分解释了如何为不使用 systemd 的发行版(如 Alpine Linux)使用 init 脚本设置 Valkey。

如果您在构建 Valkey 源代码后尚未运行 make install,则需要在继续之前这样做。默认情况下,make install 会将 valkey-servervalkey-cli 二进制文件复制到 /usr/local/bin

  • 创建一个目录来存储您的 Valkey 配置文件和数据

    sudo mkdir /etc/valkey
    sudo mkdir /var/valkey
    
  • 将您在 Valkey 发行版 utils 目录下找到的 init 脚本复制到 /etc/init.d。我们建议使用您运行此 Valkey 实例的端口名称来命名它。确保生成的文件具有 0755 权限。

    sudo cp utils/valkey_init_script /etc/init.d/valkey_6379
    
  • 编辑 init 脚本。

    sudo vi /etc/init.d/valkey_6379
    

确保将 VALKEYPORT 变量设置为您正在使用的端口。pid 文件路径和配置文件名都依赖于端口号。

  • 将您在 Valkey 发行版根目录中找到的模板配置文件复制到 /etc/valkey/,并使用端口号作为名称,例如

    sudo cp valkey.conf /etc/valkey/6379.conf
    
  • /var/valkey 中创建一个目录,作为此 Valkey 实例的数据和工作目录

    sudo mkdir /var/valkey/6379
    
  • 编辑配置文件,确保进行以下更改

    • daemonize 设置为 yes(默认设置为 no)。
    • pidfile 设置为 /var/run/valkey_6379.pid,根据需要修改端口。
    • 相应地更改端口。在我们的示例中,由于默认端口已经是 6379,因此无需更改。
    • 设置您偏好的 loglevel
    • logfile 设置为 /var/log/valkey_6379.log
    • dir 设置为 /var/valkey/6379(非常重要的一步!)。
  • 最后,使用以下命令将新的 Valkey init 脚本添加到所有默认运行级别

    sudo update-rc.d valkey_6379 defaults
    

大功告成!现在您可以尝试使用以下命令运行您的实例

sudo /etc/init.d/valkey_6379 start

确保一切按预期工作

  1. 尝试在 valkey-cli 会话中使用 PING 命令 ping 您的实例。
  2. 使用 valkey-cli save 进行测试保存,并检查 dump 文件是否正确保存到 /var/valkey/6379/dump.rdb
  3. 检查您的 Valkey 实例是否正在记录到 /var/log/valkey_6379.log 文件。
  4. 如果这是一台可以无障碍尝试的新机器,请确保重启后一切仍然正常工作。

配置 Valkey

以上说明不包括您可以更改的所有 Valkey 配置参数。例如,使用 AOF 持久化而不是 RDB 持久化,或设置复制等。

您还应该阅读示例 valkey.conf 文件,其中包含大量注释,可帮助您进行更改。更多详细信息也可以在本网站的配置文章中找到。