跳转至内容

Valkey

来自 ArchWiki


来自 Wikipedia:Valkey

Valkey 是一个开源的内存键值数据库,用作分布式缓存和消息代理,并可选支持持久化。
提示 valkey 是 Redis 的一个社区驱动的分支,是在 Redis Inc. 更改其许可证后创建的。它旨在成为一个直接的替代品,同时保持一个宽松的开源许可证。

安装

安装 valkey 包。

启动/启用 valkey.service

客户端软件

配置

Valkey 的配置文件有详细的文档,位于 /etc/valkey/valkey.conf

  • 在指定的端口(默认为 6379)上接受连接,设置 port 0 以禁用 TCP 监听
port 6379

监听套接字

与 TCP/IP 相比,使用 Unix 套接字通过 Valkey 可能会提高性能 [1]

要在 /etc/valkey/valkey.conf 中进行以下更改以启用 Unix 套接字的使用

  • 启用并更新 Valkey 套接字路径
unixsocket /run/valkey/valkey.sock
  • 将套接字权限设置为 valkey 用户组的所有成员
unixsocketperm 770
  • 将用户(例如 "git"、"http")添加到 valkey 用户组,以便他们可以访问和使用套接字。

最后 重启 valkey.service

故障排除

关于透明大页 (THP) 的警告

要解决诸如“你的内核启用了透明大页(THP)支持。这会给 Valkey 带来延迟和内存使用问题”之类的警告信息,你可能需要永久禁用此功能

/etc/tmpfiles.d/hugepage.conf
w /sys/kernel/mm/transparent_hugepage/enabled - - - - never
w /sys/kernel/mm/transparent_hugepage/defrag - - - - never

关于TCP积压的警告

要解决诸如“TCP 积压设置 511 无法生效,因为 /proc/sys/net/core/somaxconn 设置为较低值 128”之类的警告信息,请增加当前值

/etc/sysctl.d/99-sysctl.conf
net.core.somaxconn=512

关于overcommit_memory设置为0的警告

要解决诸如“overcommit_memory 设置为 0!在内存不足的情况下,后台保存可能会失败”之类的警告信息

/etc/sysctl.d/99-sysctl.conf
vm.overcommit_memory=1

技巧与提示

启用 Tab 自动补全

Zsh

你可以利用来自 zsh-completionsredis-cli 补全脚本。要将 redis-cli 补全脚本映射到 valkey-cli,请将以下行添加到 .zshrc

~/.zshrc
compdef '_dispatch redis-cli_completion redis-cli' valkey-cli